jFreeChart详细属性和方法使用总结api详解编程语言

jFreeChart详细属性和方法使用总结api详解编程语言

柱图:JFreeChart chart = ChartFactory.createBarChart3D(

 “XXX统计图”,//图表名称

 “类型”, //目录轴的显示标签(X轴标题)

 “数据额”,//数值轴的显示标签(Y轴标题)

 dataset,//数据集

 PlotOrientation.VERTICAL,  //图表方向:水平、垂直

 true, //是否显示图例  

 false,  // 是否显示 tooltip

 false); // 是否指定 url

 chart.removeLegend();//移除图例

 chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);//设置消除字体的锯齿渲染

 chart.addSubtitle(new TextTitle(“”));  //设置副标题

 chart.setBorderVisible(true);//设置边框是否可见

 chart.setBorderStroke(new BasicStroke(1));//设置边框宽度(整个最外层的边框)

 chart.setBorderPaint(Color.BLACK); //设置边框着色

 chart.setBackgroundPaint(bcParam.getBgColor());//设置背景颜色

 /***** plot 设置 (坐标区)*****/

 CategoryPlot plot = (CategoryPlot) chart.getPlot();  

 //设置显示位置  

 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);  

 plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

 

 plot.setDomainGridlinePaint(Color.blue);//设置网格竖线颜色

 plot.setDomainGridlinesVisible(true);//网格竖线是否显示

 plot.setRangeGridlinePaint(Color.blue); //设置网格横线颜色

 plot.setRangeGridlinesVisible(true);//网格横线是否显示

 plot.setRangeGridlineStroke(new BasicStroke(0.0f));//数据轴网格线条笔触

 

 plot.setBackgroundPaint(Color.LIGHT_GRAY); //坐标区背景颜色

 plot.setOutlineVisible(true);//坐标区表框是否显示

 plot.setOutlinePaint(Color.WHITE);  //坐标区边框颜色  但是要在 plot.setOutlineVisible(true); 的前提下

 plot.setForegroundAlpha(1.0f);//设置柱的透明度

 plot.setAxisOffset(); //坐标轴到数据区的间距(具体参数不知道怎么设置)

 

 plot.setDomainGridlineStroke(new BasicStroke());

 plot.setRangeGridlineStroke(new BasicStroke());

 

 /***** renderer设置 柱子相关属性设置  *****/

 BarRenderer renderer = new BarRenderer();  或  BarRenderer3D renderer = new BarRenderer3D();

 plot.setRenderer(renderer);  //将修改后的属性值保存到图中

 renderer.setDrawBarOutline(true);//柱子边框颜色是否显示

 renderer.setBaseOutlinePaint(Color.ORANGE);//柱子边框颜色但是要在 renderer.setDrawBarOutline(true); 的前提下

 renderer.setWallPaint(Color.gray);  //设置柱子墙体颜色

 renderer.setMaximumBarWidth(0.08);  //设置柱子宽度这里的参数param是一个(0-1)之间的小数,表示柱子宽度占整个图表宽度的百分比。(比如你图表宽度设置的是600pt,想要柱子的宽度为6PT,设置成0.01即可。)

 renderer.setMinimumBarLength(0.1);  //设置柱子高度

 renderer.setSeriesPaint(0,Color.ORANGE);//设置柱的颜色

 renderer.setItemMargin(0);//设置每个地区所包含的平行柱的之间距离

 renderer.setBaseItemLabelsVisible(true);//在柱子上显示相应信息 是否显示

 renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); //在柱子上显示相应信息

 renderer.setBaseItemLabelPaint(Color.BLACK);//设置数值颜色,默认黑色

 renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.CENTER_LEFT)); //搭配ItemLabelAnchor TextAnchor 这两项能达到不同的效果,但是ItemLabelAnchor最好选OUTSIDE,因为INSIDE显示不出来

 renderer.setItemLabelAnchorOffset(10); //可以进一步调整数值的位置,但是得根据ItemLabelAnchor选择情况.

 

 renderer.setBarPainter(new StandardBarPainter()); //去掉立体感(柱子显示平面效果)

 renderer.setShadowVisible(false);//不显示柱子阴影

 

 setTickMarkStroke(Stroke stroke)坐标轴标尺笔触

 setTickMarksVisible(boolean flag)坐标轴标尺是否显示

 

 renderer.setSeriesStroke(0, new BasicStroke(2.0F));  其中“0”这里是指第几条线,0为第一条;“2.0F”这里是指线的宽度

 

 /*****  domainAxis设置 X轴设置 *****/

 CategoryAxis domainAxis = plot.getDomainAxis();//对X轴做操作

 domainAxis.setLabel(“”);  //X轴的标题内容

 domainAxis.setTickLabelsVisible(true);  //X轴的标题文字是否显示

 domainAxis.setTickLabelPaint(Color.red);//X轴的标题文字颜色

 domainAxis.setAxisLinePaint(Color.red); //X轴横线颜色

 

 domainAxis.setTickMarksVisible(true);//标记线是否显示

 domainAxis.setTickMarkOutsideLength(3); //标记线向外长度

 domainAxis.setTickMarkInsideLength(3);  //标记线向内长度

 domainAxis.setTickMarkPaint(Color.red); //标记线颜色

 domainAxis.setUpperMargin(0.2);  //设置距离图片左端距离

 domainAxis.setLowerMargin(0.2);  //设置距离图片右端距离

 domainAxis.setMaximumCategoryLabelWidthRatio(0.6f); //横轴上的 Lable 是否完整显示

 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);//横轴上的 Lable 45度倾斜

 

 domainAxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 11)); //设置X轴坐标上的文字(防止乱码)

 domainAxis.setLabelFont(new Font(“宋体”, Font.PLAIN, 12)); //设置X轴的标题文字(防止乱码)

 domainAxis.setTickLabelsVisible(true);  //X轴的标题文字是否显示

 domainAxis.setTickMarksVisible(true);//标记线是否显示

 domainAxis.setTickMarkInsideLength(3);  //标记线向内长度

 domainAxis.setUpperMargin(0.2);  //设置距离图片左端距离

 domainAxis.setLowerMargin(0.2);  //设置距离图片右端距离

 /*****  rAxis设置 Y轴设置  *****/

 ValueAxis rAxis = plot.getRangeAxis();  //对Y轴做操作

 rAxis.setLabel(“时间”);//Y轴内容

 rAxis.setLabelPaint(Color.red);  //标题内容颜色

 rAxis.setLabelAngle(1.6); //标题内容显示角度(1.6时候水平)

 rAxis.setAxisLinePaint(Color.red);  //Y轴竖线颜色

 rAxis.setAxisLineVisible(true);  //Y轴竖线是否显示

 rAxis.setVisible(true);//Y轴内容是否显示

 rAxis.setAutoRange(true); //是否自动设置数据轴数据范围

 

 rAxis.setTickLabelsVisible(true);//刻度数值是否显示

 rAxis.setMinorTickMarksVisible(true);//标记线是否显示

 rAxis.setMinorTickCount(7);  //节段中的刻度数

 rAxis.setMinorTickMarkInsideLength(3);  //内刻度线向内长度

 rAxis.setMinorTickMarkOutsideLength(3); //内刻度记线向外长度

 rAxis.setTickMarkInsideLength(3);//外刻度线向内长度

 rAxis.setTickMarkPaint(Color.red);  //刻度线颜色

 rAxis.setTickMarksVisible(true); //所有Y标记线是否显示  (如果前面设置rAxis.setMinorTickMarksVisible(true); 则其照样显示)

 

 rAxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 12));//设置Y轴坐标上的文字

 rAxis.setLabelFont(new Font(“黑体”, Font.PLAIN, 12));  //设置Y轴的标题文字

 rAxis.setRange(100, 600); //Y轴取值范围(下面不能出现 rAxis.setAutoRange(true) 否则不起作用)

 rAxis.setLowerBound(100); //Y轴以开始的最小值

 rAxis.setUpperBound(600); //Y轴的最大值  

 rAxis.setUpperMargin(0.15);  //设置最高的一个 Item 与图片顶端的距离 (在设置rAxis.setRange(100, 600);情况下不起作用)

 rAxis.setLowerMargin(0.15);  //设置最低的一个 Item 与图片底端的距离

 rangeAxis.setPositiveArrowVisible(true);//是否显示正向箭头

 

 /***** 数据精度设置 *****/

 NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();

 numberaxis.setTickLabelFont(new Font(“sans-serif”, Font.PLAIN, 12)); //设置Y轴坐标上的文字(防止乱码)

 numberaxis.setLabelFont(new Font(“黑体”, Font.PLAIN, 12)); //设置Y轴的标题文字(防止乱码)

 numberaxis.setAutoRangeIncludesZero(true);//设置刻度必须从0开始

 numberaxis.setNumberFormatOverride(new DecimalFormat(“#0.000”));  //设置纵坐标数据精度

 

 XY轴标题可以用:

 TextTitle textTitle = chart.getTitle();

 textTitle.setFont(new Font(“黑体”, Font.PLAIN, 20));  //设置标题字体

 textTitle.setBackgroundPaint(Color.LIGHT_GRAY);//标题背景色

 textTitle.setPaint(Color.cyan);  //标题字体颜色

 textTitle.setText(“类型统计图”); //标题内容

 

 /*****  图例 (LegendTitle) *****/

 jfreechart.getLegend().setItemFont(new Font(“宋体”, Font.PLAIN, 12));  //设置图例的字体(防止乱码)

 

 LegendTitle legend = new LegendTitle(chart.getPlot());  //创建图例

 legend.setBorder(0,0,0,0);  //设置四周的边距,带线框. (不显示边框)

 legend.setPosition(RectangleEdge.RIGHT);  //设置图例的位置

 legend.setMargin(0, 0, 0, 5);//这样就只是距离右边有距离 margin 5

 chart.addLegend();//图表中添加图例

 //图例所拥有的一些其他方法

 legend.setBackgroundPaint(Paint paint)  //可设置图例的背景色

 legend.setTitle(String title)//图示标题内容

 legend.setTitleFont(Font font)//图示标题字体

 legend.setBoundingBoxArcWidth(int arcWidth)//图示边界圆角宽

 legend.setBoundingBoxArcHeight(int arcHeight)  //图示边界圆角高

 legend.setOutlinePaint(Paint paint) //图示边界线条颜色

 legend.setOutlineStroke(Stroke stroke)  //图示边界线条笔触

 legend.setDisplaySeriesLines(boolean flag) //图示项是否显示横线(折线图有效)

 legend.setDisplaySeriesShapes(boolean flag)//图示项是否显示形状(折线图有效)

 legend.setItemFont(Font font)//图示项字体

 legend.setItemPaint(Paint paint) //图示项字体颜色

 legend.setAnchor(int anchor) //图示在图表中的显示位置(参数常量在Legend类中定义)

 

 /*****  数据格式 *****/

 

饼图:JFreeChart chart = ChartFactory.createPieChart(

  pieName,  //图表名称

  dataset, //数据集

  true, //是否显示图例  

  false,  // 是否显示 tooltip

  false); // 是否指定 url

 chart.removeLegend();//移除图例

 plot.setLabelLinkStyle(PieLabelLinkStyle.STANDARD); //饼图的文字连接线设置成直线 可选参数CUBIC_CURVE, QUAD_CURVE, STANDARD (STANDARD为直线 )

jFreeChart详细属性和方法使用总结api详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/14639.html

(0)
上一篇 2021年7月19日 17:02
下一篇 2021年7月19日 17:02

相关推荐

发表回复

登录后才能评论