首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告

Welcome to Lin's Space !

Just enjoy yourself .

Contact me:

jerry585@gmail.com


我的分类(专题)

日志更新

最新评论

留言板

我的相册

链接

Blog信息
blog名称:Lin's Space
日志总数:20
评论数量:99
留言数量:0
访问次数:240669
建立时间:2007年5月15日




[java]jfreechart柱状图产生流程
软件技术

Great Void 发表于 2007/6/17 21:27:42

柱状图   柱状图的dataset 一般是用CatagoryDataset接口(具体实现类是DefaultCategoryDataset),也会用 IntervalXYDataset   接口   1、创建一个数据源(dataset):    private static CategoryDataset createDataset()    {        String series1 = "First";        String series2 = "Second";        String series3 = "Third";        String category1 = "Category 1";        String category2 = "Category 2";        String category3 = "Category 3";        String category4 = "Category 4";        String category5 = "Category 5";        DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();        defaultcategorydataset.addValue(1.0D, series1, category1);        defaultcategorydataset.addValue(4D, series1, category2);        defaultcategorydataset.addValue(3D, series1, category3);        defaultcategorydataset.addValue(5D, series1, category4);        defaultcategorydataset.addValue(5D, series1, category5);               defaultcategorydataset.addValue(5D, series2, category1);        defaultcategorydataset.addValue(7D, series2, category2);        defaultcategorydataset.addValue(6D, series2, category3);        defaultcategorydataset.addValue(8D, series2, category4);        defaultcategorydataset.addValue(4D, series2, category5);               defaultcategorydataset.addValue(4D, series3, category1);        defaultcategorydataset.addValue(3D, series3, category2);        defaultcategorydataset.addValue(2D, series3, category3);        defaultcategorydataset.addValue(3D, series3, category4);        defaultcategorydataset.addValue(6D, series3, category5);        return defaultcategorydataset;    }   2、由ChartFactory  产生 JFreeChart 对象       private static JFreeChart createChart(CategoryDataset categorydataset)    {        JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo", //图形标题名称                                                            "Category",//domain 轴 Lable                                                                         这里先简单理解为横坐标Lable好了                                                            "Value", //range 轴 Lable                                                                       这里也先简单理解为纵坐标Lable好了                                                            categorydataset, //  dataset                                                            PlotOrientation.VERTICAL, //垂直显示                                                            true, // legend?                                                            true,  // tooltips?                                                            false); //URLs?        jfreechart.setBackgroundPaint(Color.white);   //设定背景色为白色        CategoryPlot categoryplot = jfreechart.getCategoryPlot(); //获得 plot:CategoryPlot!!        categoryplot.setBackgroundPaint(Color.lightGray); //设定图表数据显示部分背景色        categoryplot.setDomainGridlinePaint(Color.white); //横坐标网格线白色        categoryplot.setDomainGridlinesVisible(true); //可见        categoryplot.setRangeGridlinePaint(Color.white); //纵坐标网格线白色        //下面两行使纵坐标的最小单位格为整数        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());        BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer(); //获得renderer 注意这里是下嗍造型                                                                             到BarRenderer!!        barrenderer.setDrawBarOutline(false); // Bar的外轮廓线不画        GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue,        0.0F, 0.0F, new Color(0, 0, 64));   //设定特定颜色        GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green,        0.0F, 0.0F, new Color(0, 64, 0));        GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red,        0.0F, 0.0F, new Color(64, 0, 0));        barrenderer.setSeriesPaint(0, gradientpaint); //给series1 Bar设定上面定义的颜色        barrenderer.setSeriesPaint(1, gradientpaint1); //给series2 Bar 设定上面定义的颜色        barrenderer.setSeriesPaint(2, gradientpaint2); //给series3 Bar 设定上面定义的颜色        CategoryAxis categoryaxis = categoryplot.getDomainAxis();  //横轴上的 Lable 45度倾斜        categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);               return jfreechart;    }     一些重要的方法:(增加一块标记)        IntervalMarker intervalmarker = new IntervalMarker(4.5D, 7.5D);        intervalmarker.setLabel("Target Range");        intervalmarker.setLabelFont(new Font("SansSerif", 2, 11));        intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);        intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);        intervalmarker.setPaint(new Color(222, 222, 255, 128));        categoryplot.addRangeMarker(intervalmarker, Layer.BACKGROUND);


阅读全文(2429) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144750170 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号