java画折线图和柱状图结合的综合图(用jfreechart)
2017-09-06 15:59
543 查看
最近项目增加了需求,想要下载折线图和柱状图结合的综合图。我查了一会儿,要实现这个功能,我使用了这两个第三方包了:
jfreechart-1.0.19.jar
jcommon-1.0.23.jar
效果:
步骤:
①、导入其相应的 jcommon-1.0.23.jar和 jfreechart-1.0.19.jar文件
②、下面就可以写实现功能的代码了
jfreechart-1.0.19.jar
jcommon-1.0.23.jar
效果:
步骤:
①、导入其相应的 jcommon-1.0.23.jar和 jfreechart-1.0.19.jar文件
②、下面就可以写实现功能的代码了
import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis3D; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis3D; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.labels.StandardCategoryToolTipGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.DatasetRenderingOrder; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class test { public static void main(String[] args) { //折线图数据 DefaultCategoryDataset lineDataset = new DefaultCategoryDataset(); //添加数据 lineDataset.addValue(9, "", "语文"); lineDataset.addValue(7, "", "数学"); lineDataset.addValue(6, "", "英语"); lineDataset.addValue(4, "", "物理"); lineDataset.addValue(3, "", "化学"); lineDataset.addValue(2, "", "生物"); //柱状图数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); //添加数据 dataset.addValue(4, "", "语文"); dataset.addValue(7, "", "数学"); dataset.addValue(6, "", "英语"); dataset.addValue(5, "", "物理"); dataset.addValue(3, "", "化学"); dataset.addValue(9, "", "生物"); //生成的柱状图 JFreeChart chart = ChartFactory.createBarChart3D( "科目成绩", "科目",//X轴的标签 "分数",//Y轴的标签 dataset, //图标显示的数据集合 PlotOrientation.VERTICAL, //图像的显示形式(水平或者垂直) false,//是否显示子标题 false,//是否生成提示的标签 false); //是否生成URL链接 /* * 处理图形上的乱码 */ //处理主标题的乱码 chart.getTitle().setFont(new Font("黑体",Font.BOLD,18)); //获取图表区域对象 CategoryPlot categoryPlot = (CategoryPlot)chart.getPlot(); //获取X轴的对象 CategoryAxis3D categoryAxis3D = (CategoryAxis3D)categoryPlot.getDomainAxis(); //获取Y轴的对象 NumberAxis3D numberAxis3D = (NumberAxis3D)categoryPlot.getRangeAxis(); //处理X轴上的乱码 categoryAxis3D.setTickLabelFont(new Font("黑体",Font.BOLD,10)); //处理X轴外的乱码 categoryAxis3D.setLabelFont(new Font("黑体",Font.BOLD,10)); //处理Y轴上的乱码 numberAxis3D.setTickLabelFont(new Font("黑体",Font.BOLD,10)); //处理Y轴外的乱码 numberAxis3D.setLabelFont(new Font("黑体",Font.BOLD,10)); //自定义Y轴上显示的刻度,以10作为1格 numberAxis3D.setAutoTickUnitSelection(false); NumberTickUnit unit = new NumberTickUnit(1); numberAxis3D.setTickUnit(unit); //获取绘图区域对象 BarRenderer3D barRenderer3D = (BarRenderer3D)categoryPlot.getRenderer(); //设置柱形图的宽度 barRenderer3D.setMaximumBarWidth(0.07); //在图形上显示数字 barRenderer3D.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); barRenderer3D.setBaseItemLabelsVisible(true); barRenderer3D.setBaseItemLabelFont(new Font("宋体",Font.BOLD,10)); /* * 放折线图数据 */ categoryPlot.setDataset(1, lineDataset); //设置折线 LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer(); lineandshaperenderer.setToolTipGenerator(new StandardCategoryToolTipGenerator()); categoryPlot.setRenderer(1, lineandshaperenderer); // 柱状图和纵轴紧靠 categoryAxis3D.setLowerMargin(0.0); categoryAxis3D.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45); //折线在柱面前面显示 categoryPlot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); /* * 在E盘目录下生成图片 */ File file = new File("e:\\a.png"); try { ChartUtilities.saveChartAsJPEG(file, chart, 800, 600); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- jfreechart 柱状图与折线图结合
- JFreeChart之饼图、柱状图和折线图(结合struts2)
- 使用jfreechart生成柱状图、折线图、和饼状图
- java代码实现highchart与数据库数据结合完整案例分析(二)---折线图
- JFreeChart实现饼状图、柱状图和折线图以及各类报表
- jasper综合使用-javabean结合实际业务-解决PDF中文
- Java语言用jfreechart绘制柱状图、饼状图和时序图
- 使用jfreeChart生成柱状图,折线图,饼图等
- 利用JFreeChart生成简单柱状图(Java)
- jfreeChart 柱状图和折线图结合
- JFreeChart生成柱状图、饼状图、折线图详解
- JFreeChart生成混合图(柱状图折线图)并插入excel中
- 插件jfreechart+shh实现树状图 柱状图 折线图
- java做图表(报表)--JFreeChart综合应用
- EasyUI DataGrid 结合Java 各种技巧大综合,你值得拥有。
- JFreeChart柱状图的综合应用,第一次访问中文乱码问题
- 利用JFreeChart生成简单柱状图(Java)
- jfreechart生成折线图 | 饼图 | 柱状图 | 堆栈柱状图 及常见乱码处理方法
- JFreeChart生成柱状图、饼状图、折线图详解
- java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)