package com.jfreechart; import java.awt.Color; import java.awt.Font; import java.io.FileOutputStream; import java.io.IOException; import java.util.Random; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.IntervalMarker; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.Layer; import org.jfree.ui.RectangleAnchor; import org.jfree.ui.TextAnchor; /** * * @ClassName: JFreeChart_BarChart * @author xialong * @date Jan 25, 2011 6:36:12 PM * @Description: * JFreeChart生成柱状图 * */ @SuppressWarnings("deprecation") public class JFreeChart_BarChart { public static void main(String[] arg){ try { print(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 输出图片 * @throws IOException */ public static void print() throws IOException{ FileOutputStream fos = new FileOutputStream("D://jfreechart//barChart"+System.currentTimeMillis()+".jpg"); ChartUtilities.writeChartAsJPEG(fos,//输出到那个流, 1, //图片质量,0~1 createChart(), //图表对象 900,//宽 600,//高 null//ChartRenderingInfo信息 ); fos.close(); } /** * 产生JFreeChart对象 * @return */ private static JFreeChart createChart(){ JFreeChart chart = null; //平面 // chart = ChartFactory.createBarChart("", "X轴", "Y轴", createDateSet(), // PlotOrientation.VERTICAL, true, false, false); //3D chart = ChartFactory.createBarChart3D("","X轴", "Y轴", createDateSet(), PlotOrientation.VERTICAL, true, false, false); TextTitle title = new TextTitle("测试柱状图", new Font("宋体", Font.BOLD, 20)); // 解决曲线图片标题中文乱码问题 chart.setTitle(title); //获得 plot:CategoryPlot!! CategoryPlot barplot = chart.getCategoryPlot(); //取得x轴 CategoryAxis domainAxis = barplot.getDomainAxis(); setDomainAxis(domainAxis); //取得Y轴 NumberAxis numberAxis = (NumberAxis)barplot.getRangeAxis(); setNumberAxis(numberAxis); //获得renderer 注意这里是下嗍造型到BarRenderer!! BarRenderer barrenderer = (BarRenderer)barplot.getRenderer(); //显示每个柱的数值,并修改该数值的字体属性; barrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); barrenderer.setBaseItemLabelFont(new Font("黑体",Font.BOLD,12)); barrenderer.setBaseItemLabelsVisible(true); /* // Bar的外轮廓线不画 barrenderer.setDrawBarOutline(true); //设定特定颜色 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)); //给series1 Bar设定上面定义的颜色 barrenderer.setSeriesPaint(0, gradientpaint); //给series2 Bar 设定上面定义的颜色 barrenderer.setSeriesPaint(1, gradientpaint1); //给series3 Bar 设定上面定义的颜色 barrenderer.setSeriesPaint(2, gradientpaint2); */ //增加一个标记块 //标记区间 IntervalMarker intervalmarker = new IntervalMarker(11*0.6, 11.5D); //标记显示名称 intervalmarker.setLabel("标记"); //名称字体 intervalmarker.setLabelFont(new Font("黑体", Font.PLAIN, 11)); //名称显示位子 intervalmarker.setLabelAnchor(RectangleAnchor.TOP_LEFT); //设置标记块的位置 intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); //标记块颜色 intervalmarker.setPaint(new Color(222, 222, 255, 128)); //将标记块注册到显示区域,并设置样式 barplot.addRangeMarker(intervalmarker, Layer.BACKGROUND); return chart; } /** * 设置X轴 * @param domainAxis */ private static void setDomainAxis(CategoryAxis domainAxis){ //设置x轴标题字体 domainAxis.setLabelFont(new Font("宋体",Font.BOLD,12)); // 解决x轴坐标上中文乱码 domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); //x轴坐标上倾斜45°显示 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); } /** * 设置Y轴 * @param numberAxis */ private static void setNumberAxis(NumberAxis numberaxis){ //设置Y间隔 //numberaxis.setTickUnit(new NumberTickUnit(2)); // 解决Y轴标题中文乱码 numberaxis.setLabelFont(new Font("sans-serif", Font.PLAIN, 14)); } /** * 产生数据源 * @return */ private static DefaultCategoryDataset createDateSet(){ DefaultCategoryDataset dataset = new DefaultCategoryDataset(); int i = 0; Random rand = new Random(); while (i < 3) { for (int j = 1; j < 10; j++) { int value=rand.nextInt(10)+2; dataset.addValue(value, "series" + i, "x轴"+j); } i++; } return dataset; } }
输出图片如下:
您还没有登录,请您登录后再发表评论
1. **柱状图(Bar Chart)**:柱状图用于比较类别之间的数量差异,JFreeChart提供了创建垂直和水平柱状图的选项。开发者可以通过设置颜色、透明度和标签来定制图表的外观。 2. **饼图(Pie Chart)**:饼图展示了...
1. **图表类型**:JFreeChart支持多种图表类型,如条形图(BarChart)、饼图(PieChart)、线形图(LineChart)、面积图(AreaChart)、散点图(ScatterPlot)和甘特图(GanttChart)等,这些图表类型可以满足数据...
JFreeChart chart = ChartFactory.createBarChart("Bar Chart Demo", "Category", "Value", dataset, PlotOrientation.VERTICAL, true, true, false); CategoryPlot plot = (CategoryPlot) chart.getPlot(); // ...
JFreeChart是JAVA平台上的一个开放的图表绘制类库,它是目前比较流行的Java Chart API,而且是一个开源项目。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成...
- **柱状图(Bar Chart)**:适用于比较不同类别的数量或比例。 - **饼图(Pie Chart)**:直观展示数据的比例分配。 - **线图(Line Chart)**:用于展示数据随时间的变化趋势。 - **散点图(Scatter Plot)**:...
ChartUtilities.saveChartAsPNG(new File(CHART_PATH + "bar_chart.png"), chart, 500, 300); } catch (Exception e) { e.printStackTrace(); } ``` #### 五、生成多组柱状图 多组柱状图可以比较不同类别之间的...
- **柱状图(Bar Chart)**:用于比较类别之间的数值差异,通过条形的长度表示数据的大小。 - **饼图(Pie Chart)**:显示部分与整体的关系,每个扇区代表一个数据项。 - **线图(Line Chart)**:展示数据随...
1. **多样的图表类型**:JFreeChart支持多种类型的图表,如柱状图(Bar Chart)、饼图(Pie Chart)、线形图(Line Chart)、散点图(Scatter Plot)、面积图(Area Chart)、甘特图(Gantt Chart)等,满足不同数据...
- **堆栈柱状图(Stacked Bar Chart)**:在柱状图基础上,将数据按类别分组并堆叠显示,可清晰地看到每个类别内部各部分的贡献。 **二、JFreeChart的使用步骤** 1. **创建Dataset**:首先,你需要创建一个包含...
JFreeChart barChart = ...; // 创建线图的数据集和图表 XYDataset lineDataset = ...; JFreeChart lineChart = ...; // 创建混合图 CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot(); plot....
- **柱状图**(Bar Chart):展示了如何设置类别轴和值轴,以及如何添加和自定义条形样式。 - **饼图**(Pie Chart):包含如何组织数据、设置标签和提示,以及调整切片外观的步骤。 - **线图**(Line Chart):...
2. **条形图(Bar Chart)**:如`bar_chart_code.jsp`和`bar_chart.jsp`所示,条形图使用水平或垂直的条形长度来比较不同类别的数值,适合比较类别间的数量差异。 3. **XY散点图(XY Scatter Plot)**:如`xy_chart...
1. **图表类型**:JFreeChart支持多种图表类型,如折线图(LineChart)、柱状图(BarChart)、饼图(PieChart)、散点图(ScatterPlot)、面积图(AreaChart)等。每个图表类型都有其特定的用途,适用于不同的数据...
1. **多类型的图表**:JFreeChart 支持多种图表类型,包括柱状图(BarChart)、折线图(LineChart)、饼状图(PieChart)、散点图(ScatterPlot)、甘特图(GanttChart)等,满足不同场景下的数据展示需求。...
- **条形图(Bar Charts)** - 条形图是另一种常用的图表类型,用于比较不同类别之间的数量或值。 - **特性**: - 可以选择垂直或水平布局。 - 支持分组和堆叠模式。 - 支持自定义颜色和样式。 - 支持动态更新...
1. **多样的图表类型**:JFreeChart支持多种图表类型,如折线图(Line Chart)、柱状图(Bar Chart)、饼图(Pie Chart)、散点图(Scatter Plot)以及面积图(Area Chart)等,满足不同场景的数据可视化需求。...
JFreeChart chart = ChartFactory.createBarChart("Bar Chart Title", "Category", "Value", dataset); ``` 通过这些基本概念和示例,我们可以快速地开始使用 JFreeChart 创建各种图表。同时,开发者可以利用 ...
JFreeChart 提供了 CategoryChart 和 BarChart 类来创建柱状图。开发者可以通过设置 CategoryDataset 来定义数据,然后使用 BarRenderer 渲染这些数据,形成不同宽度的柱子来表示每个类别的数量或值。 **4. 导入与...
相关推荐
1. **柱状图(Bar Chart)**:柱状图用于比较类别之间的数量差异,JFreeChart提供了创建垂直和水平柱状图的选项。开发者可以通过设置颜色、透明度和标签来定制图表的外观。 2. **饼图(Pie Chart)**:饼图展示了...
1. **图表类型**:JFreeChart支持多种图表类型,如条形图(BarChart)、饼图(PieChart)、线形图(LineChart)、面积图(AreaChart)、散点图(ScatterPlot)和甘特图(GanttChart)等,这些图表类型可以满足数据...
JFreeChart chart = ChartFactory.createBarChart("Bar Chart Demo", "Category", "Value", dataset, PlotOrientation.VERTICAL, true, true, false); CategoryPlot plot = (CategoryPlot) chart.getPlot(); // ...
JFreeChart是JAVA平台上的一个开放的图表绘制类库,它是目前比较流行的Java Chart API,而且是一个开源项目。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成...
- **柱状图(Bar Chart)**:适用于比较不同类别的数量或比例。 - **饼图(Pie Chart)**:直观展示数据的比例分配。 - **线图(Line Chart)**:用于展示数据随时间的变化趋势。 - **散点图(Scatter Plot)**:...
ChartUtilities.saveChartAsPNG(new File(CHART_PATH + "bar_chart.png"), chart, 500, 300); } catch (Exception e) { e.printStackTrace(); } ``` #### 五、生成多组柱状图 多组柱状图可以比较不同类别之间的...
- **柱状图(Bar Chart)**:用于比较类别之间的数值差异,通过条形的长度表示数据的大小。 - **饼图(Pie Chart)**:显示部分与整体的关系,每个扇区代表一个数据项。 - **线图(Line Chart)**:展示数据随...
1. **多样的图表类型**:JFreeChart支持多种类型的图表,如柱状图(Bar Chart)、饼图(Pie Chart)、线形图(Line Chart)、散点图(Scatter Plot)、面积图(Area Chart)、甘特图(Gantt Chart)等,满足不同数据...
- **堆栈柱状图(Stacked Bar Chart)**:在柱状图基础上,将数据按类别分组并堆叠显示,可清晰地看到每个类别内部各部分的贡献。 **二、JFreeChart的使用步骤** 1. **创建Dataset**:首先,你需要创建一个包含...
JFreeChart barChart = ...; // 创建线图的数据集和图表 XYDataset lineDataset = ...; JFreeChart lineChart = ...; // 创建混合图 CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot(); plot....
- **柱状图**(Bar Chart):展示了如何设置类别轴和值轴,以及如何添加和自定义条形样式。 - **饼图**(Pie Chart):包含如何组织数据、设置标签和提示,以及调整切片外观的步骤。 - **线图**(Line Chart):...
2. **条形图(Bar Chart)**:如`bar_chart_code.jsp`和`bar_chart.jsp`所示,条形图使用水平或垂直的条形长度来比较不同类别的数值,适合比较类别间的数量差异。 3. **XY散点图(XY Scatter Plot)**:如`xy_chart...
1. **图表类型**:JFreeChart支持多种图表类型,如折线图(LineChart)、柱状图(BarChart)、饼图(PieChart)、散点图(ScatterPlot)、面积图(AreaChart)等。每个图表类型都有其特定的用途,适用于不同的数据...
1. **多类型的图表**:JFreeChart 支持多种图表类型,包括柱状图(BarChart)、折线图(LineChart)、饼状图(PieChart)、散点图(ScatterPlot)、甘特图(GanttChart)等,满足不同场景下的数据展示需求。...
- **条形图(Bar Charts)** - 条形图是另一种常用的图表类型,用于比较不同类别之间的数量或值。 - **特性**: - 可以选择垂直或水平布局。 - 支持分组和堆叠模式。 - 支持自定义颜色和样式。 - 支持动态更新...
1. **多样的图表类型**:JFreeChart支持多种图表类型,如折线图(Line Chart)、柱状图(Bar Chart)、饼图(Pie Chart)、散点图(Scatter Plot)以及面积图(Area Chart)等,满足不同场景的数据可视化需求。...
JFreeChart chart = ChartFactory.createBarChart("Bar Chart Title", "Category", "Value", dataset); ``` 通过这些基本概念和示例,我们可以快速地开始使用 JFreeChart 创建各种图表。同时,开发者可以利用 ...
JFreeChart 提供了 CategoryChart 和 BarChart 类来创建柱状图。开发者可以通过设置 CategoryDataset 来定义数据,然后使用 BarRenderer 渲染这些数据,形成不同宽度的柱子来表示每个类别的数量或值。 **4. 导入与...