使用JFreeChart生成条形图
来源:互联网 发布:自信过头就是自负知乎 编辑:程序博客网 时间:2024/05/14 03:11
1. 准备工作
- 下载
JFreeChart
,我使用的版本为1.0.19,相关内容参见JFreeChart,下载链接为https://sourceforge.net/projects/jfreechart/files/。 - 导入
jar
包,本例子使用jcommon-1.0.23.jar
和jfreechart-1.0.19.jar
,所以只需要导入这两个包即可。在java
项目下新建目录lib
,将上述两个包复制到该目录下,然后在Eclipse
下选中这两个包,右键单击选中Build Path
菜单项,接着单击Add to Build Path
子项添加jar
包到该项目中。
2. 实例
数据如下:
完整代码如下:
//CreateImage.javapackage jfreechart_test;import java.awt.Font;import java.io.File;import java.io.IOException;import org.jfree.chart.ChartColor;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.StandardChartTheme;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.CategoryLabelPositions;import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.BarRenderer;import org.jfree.chart.renderer.category.StandardBarPainter;import org.jfree.data.category.DefaultCategoryDataset;public class CreateImage { public static void createImage() { final DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(26, "参考值", "MMSE"); dataset.addValue(4, "参考值", "言语记忆N5"); dataset.addValue(29, "参考值", "注意功能"); dataset.addValue(30, "参考值", "言语流畅性"); dataset.addValue(22, "参考值", "命名测验"); dataset.addValue(38, "参考值", "执行功能"); dataset.addValue(28, "测量值", "MMSE"); dataset.addValue(4, "测量值", "言语记忆N5"); dataset.addValue(30, "测量值", "注意功能"); dataset.addValue(46, "测量值", "言语流畅性"); dataset.addValue(24, "测量值", "命名测验"); dataset.addValue(48, "测量值", "执行功能"); // 创建主题样式 StandardChartTheme standardChartTheme = new StandardChartTheme("CN"); // 设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 15)); // 设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书", Font.PLAIN, 12)); // 设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书", Font.PLAIN, 12)); // 应用主题样式 ChartFactory.setChartTheme(standardChartTheme); JFreeChart barChart = ChartFactory.createBarChart("认知能力得分", null, null, dataset, PlotOrientation.VERTICAL, true, true, false); //图表背景色 barChart.setBackgroundPaint(ChartColor.WHITE); CategoryPlot categoryplot = (CategoryPlot) barChart.getPlot(); categoryplot.setBackgroundPaint(ChartColor.WHITE); //柱图的呈现器 BarRenderer renderer = new BarRenderer(); renderer.setBarPainter(new StandardBarPainter());//取消渐变效果 renderer.setIncludeBaseInRange(true); // 显示每个柱的数值,并修改该数值的字体属性 renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setBaseOutlinePaint(ChartColor.BLACK); // 设置柱子边框颜色 renderer.setDrawBarOutline(true); // 设置柱子边框可见 renderer.setItemMargin(0.05); // 组内柱子间隔为组宽的10% renderer.setMaximumBarWidth(0.05);// 设置条形柱最大宽度 renderer.setBaseItemLabelsVisible(true, true); renderer.setShadowVisible(false);//不显示阴影 categoryplot.setRenderer(renderer); // 给柱图添加呈现器 //修改x轴标签方向 CategoryAxis categoryaxis = barChart.getCategoryPlot().getDomainAxis(); categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); int width = 500; //图像宽度 int height = 380; //图像高度 File BarChart = new File("d:\\test.png"); try { ChartUtilities.saveChartAsJPEG(BarChart, barChart, width, height); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}//CreateImageIns.javapackage jfreechart_test;public class CreateImageIns { public static void main(String[] args) { CreateImage.createImage(); }}
结果展示:
3. 其他
1. 改变柱子颜色
renderer.setSeriesPaint(i, ChartColor.WHITE);//将第i个柱子设置为白色
在上述CreateImage.java的createImage()方法中的柱图呈现器下面添加如下代码:
//设置柱子颜色for(int i = 0; i < 12; i++) { if(i % 2 == 0) { renderer.setSeriesPaint(i, ChartColor.GRAY); } else { renderer.setSeriesPaint(i, ChartColor.WHITE); }}
结果为:
0 0
- 使用JFreeChart生成条形图
- JFreeChart条形图
- JFreeChart图表工具的使用(条形图、饼状图)
- jfreechart详解二条形图
- JFreeChart生成条形统计图(柱形图)
- jfreechart的条形图设置方式
- JFreeChart 3D饼图/条形图
- jfreechart简单介绍1---条形图
- 使用JFreeChart生成饼图
- java中利用JFreeChart生成条形统计图(柱形图)
- 动态生成条形图-canvas
- echarts动态生成条形图
- JFreeChart(使用一):生成折线图
- 使用JFreeChart生成柱状图和饼图
- 使用JFreeChart生成图表
- JFreeChart从一个给定的业务数据创建条形图。
- 使用JFreeChart生成饼图实例(生成图片)
- 使用JFreeChart生成时间顺序图实例(生成图片)
- mysql 取多列最大最小值GREATEST,LEAST
- 内存管理
- 灰色系统预测GM(1,1)模型
- 图像腐蚀与膨胀
- iOS 学习笔记(一) 视频引导页的制作
- 使用JFreeChart生成条形图
- 谈谈对Spring IOC的理解
- Swift基础之实现选择图片时,出现类似于ActionSheet的样式
- 单例模式来咯!
- 最近看的东西
- Cholesky分解对任意多维高斯分布进行采样
- linux下openssl命令详解
- uva10341 Solve It
- navicat连接mysql 报1130