1、折线图demo
package com.pdf; import java.awt.Font; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; //JFreeChart Line Chart(折线图) public class CreateJFreeChartLine { public static void main(String[] args) { // 步骤1:创建CategoryDataset对象(准备数据) CategoryDataset dataset = createDataset(); // 步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置 JFreeChart freeChart = createChart(dataset); // 步骤3:将JFreeChart对象输出到文件,Servlet输出流等 saveAsFile(freeChart, "c:jfreechartline.jpg", 600, 400); } // 保存为文件 public static void saveAsFile(JFreeChart chart, String outputPath,int weight, int height) { FileOutputStream out = null; try { File outFile = new File(outputPath); if (!outFile.getParentFile().exists()) { outFile.getParentFile().mkdirs(); } out = new FileOutputStream(outputPath); // 保存为PNG // ChartUtilities.writeChartAsPNG(out, chart, 600, 400); // 保存为JPEG ChartUtilities.writeChartAsJPEG(out, chart, 600, 400); out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // do nothing } } } } // 根据CategoryDataset创建JFreeChart对象 public static JFreeChart createChart(CategoryDataset categoryDataset) { //这里的"name"参数;是什么意思我也不知道,反正这样可以用 StandardChartTheme standardChartTheme = new StandardChartTheme("name"); //可以改变轴向的字体 standardChartTheme.setLargeFont(new Font("楷体",Font.BOLD, 12)); //可以改变图例的字体 standardChartTheme.setRegularFont(new Font("宋体",Font.BOLD, 8)); //可以改变图标的标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD, 20)); ChartFactory.setChartTheme(standardChartTheme);//设置主题 // 创建JFreeChart对象:ChartFactory.createLineChart JFreeChart jfreechart = ChartFactory.createLineChart3D("不同类别按小时计算拆线图", "年分", "数量", categoryDataset, PlotOrientation.VERTICAL, true, true, false); // 使用CategoryPlot设置各种参数。以下设置可以省略。 CategoryPlot plot = (CategoryPlot) jfreechart.getPlot(); // 背景色 透明度 plot.setBackgroundAlpha(0.5f); // 前景色 透明度 plot.setForegroundAlpha(0.5f); // 其他设置 参考 CategoryPlot类 return jfreechart; } /** * 创建数据集 * @return */ public static CategoryDataset createDataset() { String[] rowKeys = {"A平台","你妹"}; String[] colKeys = {"0:00", "1:00", "2:00", "7:00", "8:00", "9:00","10:00", "11:00", "12:00", "13:00", "16:00", "20:00", "21:00","23:00" }; double[][] data = {{4, 8, 1, 1, 1, 1, 2, 2, 2, 1, 8, 2, 1, 1 },{9, 3, 5, 8, 1, 7, 2, 2, 5, 1, 8, 2, 3, 1}}; return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data); } }
2、折线图自定义x轴demo
package com.pdf; import java.awt.Color; import java.awt.Dimension; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RectangleInsets; import org.jfree.ui.RefineryUtilities; public class LineChartDemo2 extends ApplicationFrame { public LineChartDemo2(String paramString) { super(paramString); XYDataset localXYDataset = createDataset(); JFreeChart localJFreeChart = createChart(localXYDataset); ChartPanel localChartPanel = new ChartPanel(localJFreeChart); localChartPanel.setPreferredSize(new Dimension(500, 270)); setContentPane(localChartPanel); } private static XYDataset createDataset() { XYSeries localXYSeries1 = new XYSeries("First"); localXYSeries1.add(1, 1); localXYSeries1.add(2, 4); localXYSeries1.add(3, 3); localXYSeries1.add(4, 5); localXYSeries1.add(5, 5); localXYSeries1.add(6, 7); localXYSeries1.add(7, 7); localXYSeries1.add(21, 8); XYSeries localXYSeries2 = new XYSeries("Second"); localXYSeries2.add(1, 5); localXYSeries2.add(2, 7); localXYSeries2.add(3, 6); localXYSeries2.add(4, 8); localXYSeries2.add(5, 4); localXYSeries2.add(6, 4); localXYSeries2.add(7, 2); localXYSeries2.add(8, 1); XYSeries localXYSeries3 = new XYSeries("Third"); localXYSeries3.add(3, 4); localXYSeries3.add(4, 3); localXYSeries3.add(5, 2); localXYSeries3.add(6, 3); localXYSeries3.add(7, 6); localXYSeries3.add(8, 3); localXYSeries3.add(9, 4); localXYSeries3.add(10, 3); XYSeriesCollection localXYSeriesCollection = new XYSeriesCollection(); localXYSeriesCollection.addSeries(localXYSeries1); localXYSeriesCollection.addSeries(localXYSeries2); localXYSeriesCollection.addSeries(localXYSeries3); return localXYSeriesCollection; } private static JFreeChart createChart(XYDataset paramXYDataset) { JFreeChart localJFreeChart = ChartFactory.createXYLineChart("Line Chart Demo 2", "X", "Y", paramXYDataset, PlotOrientation.VERTICAL, true, true, false); localJFreeChart.setBackgroundPaint(Color.white); XYPlot localXYPlot = (XYPlot)localJFreeChart.getPlot(); localXYPlot.setBackgroundPaint(Color.lightGray); localXYPlot.setAxisOffset(new RectangleInsets(10, 10, 10, 10)); localXYPlot.setDomainGridlinePaint(Color.white); localXYPlot.setRangeGridlinePaint(Color.white); XYLineAndShapeRenderer localXYLineAndShapeRenderer = (XYLineAndShapeRenderer)localXYPlot.getRenderer(); localXYLineAndShapeRenderer.setBaseShapesVisible(true); localXYLineAndShapeRenderer.setBaseShapesFilled(true); NumberAxis localNumberAxis = (NumberAxis)localXYPlot.getRangeAxis(); localNumberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); return localJFreeChart; } public static JPanel createDemoPanel() { JFreeChart localJFreeChart = createChart(createDataset()); return new ChartPanel(localJFreeChart); } public static void main(String[] paramArrayOfString) { LineChartDemo2 localLineChartDemo2 = new LineChartDemo2("Line Chart Demo 2"); localLineChartDemo2.pack(); RefineryUtilities.centerFrameOnScreen(localLineChartDemo2); localLineChartDemo2.setVisible(true); } }
3、将柱状图的Y轴,显示为百分比的demo
package com.pdf; import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalFormat; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; //JFreeChart Line Chart(柱状图) public class CreateJFreeChartColumn { public static void main(String[] args) { // 步骤1:创建CategoryDataset对象(准备数据) CategoryDataset dataset = createDataset(); // 步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置 JFreeChart freeChart = createChart(dataset); // 步骤3:将JFreeChart对象输出到文件,Servlet输出流等 saveAsFile(freeChart, "c:jfreechartline.jpg", 600, 400); } // 保存为文件 public static void saveAsFile(JFreeChart chart, String outputPath,int weight, int height) { FileOutputStream out = null; try { File outFile = new File(outputPath); if (!outFile.getParentFile().exists()) { outFile.getParentFile().mkdirs(); } out = new FileOutputStream(outputPath); // 保存为PNG // ChartUtilities.writeChartAsPNG(out, chart, 600, 400); // 保存为JPEG ChartUtilities.writeChartAsJPEG(out, chart, 600, 400); out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // do nothing } } } } // 根据CategoryDataset创建JFreeChart对象 public static JFreeChart createChart(CategoryDataset categoryDataset) { //这里的"name"参数;是什么意思我也不知道,反正这样可以用 StandardChartTheme standardChartTheme = new StandardChartTheme("name"); //可以改变轴向的字体 standardChartTheme.setLargeFont(new Font("楷体",Font.BOLD, 12)); //可以改变图例的字体 standardChartTheme.setRegularFont(new Font("宋体",Font.BOLD, 8)); //可以改变图标的标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD, 20)); ChartFactory.setChartTheme(standardChartTheme);//设置主题 // 创建JFreeChart对象:ChartFactory.createLineChart JFreeChart jfreechart = ChartFactory.createBarChart("不同类别按小时计算拆线图", "年分", "数量", categoryDataset, PlotOrientation.VERTICAL, true, true, false); // 使用CategoryPlot设置各种参数。以下设置可以省略。 CategoryPlot plot = (CategoryPlot) jfreechart.getPlot(); //设置柱状图显示为百分比 BarRenderer3D renderer = new BarRenderer3D(); renderer.setBaseOutlinePaint(Color.BLACK); //显示每个柱的数值,并修改该数值的字体属性 renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",DecimalFormat.getPercentInstance())); renderer.setItemLabelsVisible(true); plot.setRenderer(renderer); // 背景色 透明度 plot.setBackgroundAlpha(0.5f); // 前景色 透明度 plot.setForegroundAlpha(0.5f); // 其他设置 参考 CategoryPlot类 return jfreechart; } /** * 创建数据集 * @return */ public static CategoryDataset createDataset() { String[] rowKeys = {"A平台"}; String[] colKeys = {"0:00", "1:00", "2:00", "7:00", "8:00", "9:00","10:00", "11:00", "12:00", "13:00", "16:00", "20:00", "21:00","23:00" }; double[][] data = {{0.8, 0.5, 0.124, 0.58, 0.25, 0.23, 0.12, 0.47, 0.29, 0.86, 0.75, 0.64, 0.31, 0.123 }}; return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data); } }
相关推荐
Java中的JFreeChart库是一个强大的工具,用于生成各种图表,如折线图、柱状图、饼图、散点图等。它为开发者提供了一种简单的方法来在Java应用程序、Swing组件或Web应用程序中创建高质量的图表。在这个"java--...
struts2-jfreechart-plugin-2.1.8.1.jar
struts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jar
struts2-jfreechart-plugin-2.1.6.jar
struts2-jfreechart-plugin-2.0.8.jar
struts2-jfreechart-plugin-2.1.8.1
struts2-jfreechart-plugin-2.3.4.1.jar
`strugs2-jfreechart-plugin`插件结合了这两者的优点,为开发者提供了一种便捷的方式来生成图表并嵌入到Struts2应用中。有时为了满足特定的需求或修复某些bug,我们可能需要对这个插件进行定制化修改。 #### 二、...
struts2 结合强大的图形报表开发包进行集成开发,能够降低系统的耦合和灵活的报表开发方式,展现不同的图形化报表,给企业带来更加精美的报表解决方案。
最新官方struts2-plugin jfreechart,分享于有需要的朋友
"jfreechart-plug" 标签可能是指JFreeChart的插件化特性,表明这个插件可以被轻松地添加到项目中,就像其他Struts2的插件一样,通过配置文件进行管理。 在压缩包中的"struts2-jfreechart-plugin-2.1.6.jar" 文件,...
Struts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChartStruts2 -JFreeChart
JFreeChart 是一个强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图等,广泛应用于数据分析和可视化。`struts-2.3.20-jfreechart插件`是Struts 2框架的一个扩展,它整合了JFreeChart的功能,使得在...
struts2整合jfreechart 的工具jar文件 struts2-jfreechart-plugin-2.3.15.3.jar
**JFreeChart** 是一个Java库,用于生成高质量的图表,包括曲线图、柱状图、折线图、饼图以及甘特图等。它在Java应用和Web应用中广泛使用,尤其是对于数据可视化和报告生成。JFreeChart库不仅支持静态图表,还能够...
在IT行业中,SSH(Secure Shell)通常用于远程访问和管理服务器,而JFreeChart则是一个强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图等。这个名为"ssh-jfreechart"的主题是关于如何在SSH环境中利用...
Java统计图生成库JFreeChart是一个强大的开源工具,专为Java开发者设计,用于创建各种复杂的图表,如柱状图、饼图和折线图。它提供了丰富的功能和灵活性,使得在应用程序中集成可视化数据变得非常容易,而无需深入...
1. **jfreechart-1.0.19-install.pdf**:这可能是安装或使用指南,详细介绍了如何将JFreeChart库集成到你的Java项目中,包括依赖管理和配置步骤,可能还包括示例代码和最佳实践。 2. **jfreechart-1.0.19-fx-...
这个压缩包“jfreechart-1.0.13”包含了JFreeChart的完整版本,让我们一起深入探讨其核心功能和使用方法。 JFreeChart是Java中最优秀的绘图工具之一,它支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特...
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括 柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得 到广泛的应用。 ...