`
fly_ever
  • 浏览: 149935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jfreechart画图的步骤以及乱码解决

    博客分类:
  • java
阅读更多

 

1,创建数据的集合Dataset:
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
往defaultcategorydataset 里面填数据
2,创建图形的展示方式Render:
   比如柱状图,则采用BarRenderer barrenderer = new BarRenderer();
3,新建一个CategoryPlot
CategoryPlot categoryplot = new CategoryPlot();
4,对CategoryPlot对象设置 dataset,设置render,设置DomainAxis,设置RangeAxis。
5,根据categoryPlot对象,生成图形:
JFreeChart jfreechart = new JFreeChart(categoryplot);
6,如果有多个数据集合,或者多个展示方式,多个RangeAxis等,则按上述方法新建各个对象。
   比如有两个数据集合,两个展示方式,两个RangeAxis。则对第2个对象进行如下设置:
  categoryplot.setDataset(1, defaultcategorydataset1); //设置第2个数据集合
  categoryplot.setRenderer(1, lineandshaperenderer);//设置第2个展示方式
  NumberAxis numberaxis = new NumberAxis("Axis 2");
  categoryplot.setRangeAxis(1, numberaxis);//新建和设置第2个RangeAxis.
   然后把RangeAxis和数据集合进行匹配:
   categoryplot.mapDatasetToRangeAxis(1, 1);//把索引为1的Dataset与索引为1的RangeAxis相关联
   按这种方式就能生成多种图形的组合。
7,画图时如果出现乱码问题,有可能是没有设置字体所致:
TextTitle textTitle = jfreechart.getTitle();
textTitle.setFont(new Font("黑体",Font.PLAIN,20));
domainAxis.setTickLabelFont(new Font("sans-serif",Font.PLAIN,11));
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN,12));
rangeAxis.setLabelFont(new Font("宋体",Font.PLAIN,12));
rangeAxis.setTickLabelFont(new Font("sans-serif",Font.PLAIN,11));

jfreechart.getLegend().setItemFont(new Font("sans-serif",Font.PLAIN,11));
   对各个显示的对象设置好字体后,即可正确显示中文。



    

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics