`
- 浏览:
1071230 次
- 性别:
- 来自:
长沙
-
- package com.yyh.jfreechart;
-
- import java.awt.Color;
- import java.awt.Font;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.text.DecimalFormat;
- import java.text.NumberFormat;
-
- 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.axis.ValueAxis;
- import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
- import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
- import org.jfree.chart.plot.CategoryPlot;
- import org.jfree.chart.plot.PiePlot3D;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.chart.renderer.category.BarRenderer;
- import org.jfree.chart.renderer.category.LineAndShapeRenderer;
- import org.jfree.chart.renderer.category.StackedBarRenderer;
- import org.jfree.chart.title.TextTitle;
- import org.jfree.data.category.CategoryDataset;
- import org.jfree.data.general.DatasetUtilities;
- import org.jfree.data.general.DefaultPieDataset;
- import org.jfree.data.general.PieDataset;
-
-
-
-
-
-
- public class CreateChartServiceImpl {
-
- private static final String CHART_PATH = "E:/test/";
-
- public static void main(String[] args) {
-
- CreateChartServiceImpl pm = new CreateChartServiceImpl();
-
- pm.makePieChart();
-
- pm.makeBarChart();
-
- pm.makeBarGroupChart();
-
- pm.makeStackedBarChart();
-
- pm.makeLineAndShapeChart();
- }
-
-
-
-
- public void makeLineAndShapeChart() {
- double[][] data = new double[][]{
- {672, 766, 223, 540, 126},
- {325, 521, 210, 340, 106},
- {332, 256, 523, 240, 526}
- };
- String[] rowKeys = {"苹果", "梨子", "葡萄"};
- String[] columnKeys = {"北京", "上海", "广州", "成都", "深圳"};
- CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);
- createTimeXYChar("折线图", "x轴", "y轴", dataset, "lineAndShap.png");
- }
-
-
-
-
- public void makeBarGroupChart() {
- double[][] data = new double[][]{
- {672, 766, 223, 540, 126},
- {325, 521, 210, 340, 106},
- {332, 256, 523, 240, 526}
- };
- String[] rowKeys = {"苹果", "梨子", "葡萄"};
- String[] columnKeys = {"北京", "上海", "广州", "成都", "深圳"};
- CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);
- createBarChart(dataset, "x坐标", "y坐标", "柱状图", "barGroup.png");
- }
-
-
-
-
- public void makeBarChart() {
- double[][] data = new double[][]{
- {672, 766, 223, 540, 126}
- };
- String[] rowKeys = {"苹果"};
- String[] columnKeys = {"北京", "上海", "广州", "成都", "深圳"};
- CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);
- createBarChart(dataset, "x坐标", "y坐标", "柱状图", "bar.png");
- }
-
-
-
-
- public void makeStackedBarChart() {
- double[][] data = new double[][]{
- {0.21, 0.66, 0.23, 0.40, 0.26},
- {0.25, 0.21, 0.10, 0.40, 0.16}
- };
- String[] rowKeys = {"苹果", "梨子"};
- String[] columnKeys = {"北京", "上海", "广州", "成都", "深圳"};
- CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);
- createStackedBarChart(dataset, "x坐标", "y坐标", "柱状图", "stsckedBar.png");
- }
-
-
-
-
- public void makePieChart() {
- double[] data = {9, 91};
- String[] keys = {"失败率", "成功率"};
-
- createValidityComparePimChar(getDataPieSetByUtil(data, keys), "饼状图",
- "pie2.png", keys);
- }
-
-
- public CategoryDataset getBarData(double[][] data, String[] rowKeys,
- String[] columnKeys) {
- return DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
-
- }
-
-
- public PieDataset getDataPieSetByUtil(double[] data,
- String[] datadescription) {
-
- if (data != null && datadescription != null) {
- if (data.length == datadescription.length) {
- DefaultPieDataset dataset = new DefaultPieDataset();
- for (int i = 0; i < data.length; i++) {
- dataset.setValue(datadescription[i], data[i]);
- }
- return dataset;
- }
-
- }
-
- return null;
- }
-
-
-
-
-
-
-
-
-
-
-
- public String createBarChart(CategoryDataset dataset, String xName,
- String yName, String chartTitle, String charName) {
- JFreeChart chart = ChartFactory.createBarChart(chartTitle,
- xName,
- yName,
- dataset,
- PlotOrientation.VERTICAL,
- true,
- false,
- false
- );
- Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);
-
-
-
-
-
- chart.setTextAntiAlias(false);
- chart.setBackgroundPaint(Color.white);
-
- CategoryPlot plot = chart.getCategoryPlot();
-
- plot.setRangeGridlinesVisible(true);
-
- plot.setRangeGridlinePaint(Color.gray);
-
-
- NumberAxis vn = (NumberAxis) plot.getRangeAxis();
-
- DecimalFormat df = new DecimalFormat("#0.00");
- vn.setNumberFormatOverride(df);
-
-
- CategoryAxis domainAxis = plot.getDomainAxis();
- domainAxis.setLabelFont(labelFont);
-
- domainAxis.setTickLabelFont(labelFont);
-
-
-
-
-
- domainAxis.setMaximumCategoryLabelWidthRatio(0.6f);
-
-
- domainAxis.setLowerMargin(0.1);
-
- domainAxis.setUpperMargin(0.1);
-
-
-
- plot.setDomainAxis(domainAxis);
-
- plot.setBackgroundPaint(new Color(255, 255, 204));
-
-
- ValueAxis rangeAxis = plot.getRangeAxis();
- rangeAxis.setLabelFont(labelFont);
- rangeAxis.setTickLabelFont(labelFont);
-
- rangeAxis.setUpperMargin(0.15);
-
- rangeAxis.setLowerMargin(0.15);
- plot.setRangeAxis(rangeAxis);
-
- BarRenderer renderer = new BarRenderer();
-
- renderer.setMaximumBarWidth(0.05);
-
- renderer.setMinimumBarLength(0.2);
-
- renderer.setBaseOutlinePaint(Color.BLACK);
-
- renderer.setDrawBarOutline(true);
-
-
- renderer.setSeriesPaint(0, new Color(204, 255, 255));
- renderer.setSeriesPaint(1, new Color(153, 204, 255));
- renderer.setSeriesPaint(2, new Color(51, 204, 204));
-
-
- renderer.setItemMargin(0.0);
-
-
- renderer.setIncludeBaseInRange(true);
- renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
- renderer.setBaseItemLabelsVisible(true);
-
- plot.setRenderer(renderer);
-
- plot.setForegroundAlpha(1.0f);
-
- FileOutputStream fos_jpg = null;
- try {
- isChartPathExist(CHART_PATH);
- String chartName = CHART_PATH + charName;
- fos_jpg = new FileOutputStream(chartName);
- ChartUtilities.writeChartAsPNG(fos_jpg, chart, 500, 500, true, 10);
- return chartName;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- } finally {
- try {
- fos_jpg.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
-
-
-
-
-
-
-
-
-
-
- public String createHorizontalBarChart(CategoryDataset dataset,
- String xName, String yName, String chartTitle, String charName) {
- JFreeChart chart = ChartFactory.createBarChart(chartTitle,
- xName,
- yName,
- dataset,
- PlotOrientation.VERTICAL,
- true,
- false,
- false
- );
-
- CategoryPlot plot = chart.getCategoryPlot();
-
- NumberAxis vn = (NumberAxis) plot.getRangeAxis();
-
-
- DecimalFormat df = new DecimalFormat("#0.00");
- vn.setNumberFormatOverride(df);
-
- CategoryAxis domainAxis = plot.getDomainAxis();
-
- domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
-
-
- Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);
-
- domainAxis.setLabelFont(labelFont);
-
- domainAxis.setTickLabelFont(labelFont);
-
- domainAxis.setMaximumCategoryLabelWidthRatio(0.8f);
-
-
- plot.setDomainAxis(domainAxis);
-
- ValueAxis rangeAxis = plot.getRangeAxis();
-
- rangeAxis.setUpperMargin(0.15);
-
- rangeAxis.setLowerMargin(0.15);
- plot.setRangeAxis(rangeAxis);
- BarRenderer renderer = new BarRenderer();
-
- renderer.setMaximumBarWidth(0.03);
- &nb
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
以上就是在JavaFX中使用JFreeChart生成图表的基本流程。为了使图表更具交互性,还可以添加事件监听器,如点击图表元素时触发特定操作。此外,JFreeChart提供了丰富的配置选项,可以调整图表的外观,如颜色、线条样式...
这个例子的压缩包“JFreeChart生成图表的例子.rar”包含了一些示例代码,帮助开发者理解如何利用JFreeChart在Java应用程序中生成图表。 JFreeChart库的核心功能在于它提供了丰富的API,允许开发者自定义图表的各个...
### 在Struts中使用JFreeChart生成图表 #### 一、引言 随着Web应用程序功能需求的日益增加,用户不仅需要获取数据,还希望能够直观地理解这些数据所代表的意义。图表作为一种直观的数据可视化手段,在现代Web应用...
这个例子将引导我们了解如何利用JFreeChart在Java应用程序中生成这些图表,非常适合初学者入门。 首先,我们需要理解JFreeChart的基本结构。JFreeChart的核心是`ChartFactory`类,它提供了创建各种图表类型的方法。...
在本示例中,我们将使用JFreeChart生成图表,然后将生成的图表嵌入到Freemarker模板生成的Word文档中。 生成图表的过程如下: 1. 创建`CategoryDataset`或`PieDataset`对象,填充必要的数据。 2. 使用这些数据集...
jfreechart生成各种图表 柱状 饼状 折线 锥状
标题“Spring+JFreeChart 自动生成统计图”涉及的是在Java开发环境中,利用Spring框架和JFreeChart库来动态生成图表的技巧。这篇文章可能是介绍如何在Spring应用中集成JFreeChart,以便为数据可视化提供服务。 ...
Jar包含:gnujaxp.jar,iText-2.1.5.jar,jcommon-1.0.16.jar,jfreechart-1.0.13.jar,jfreechart-1.0.13-experimental.jar,jfreechart-1.0.13-swt.jar,junit.jar,servlet.jar,swtgraphics2d.jar
本文档主要讲述的是使用 JFreeChart来创建基于web的图表;JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、...
在Linux环境下,使用Java的JFreeChart库生成图表时,可能会遇到一个问题,即图表中的文本出现乱码。这是因为JFreeChart默认使用的字体可能在Linux系统中不被支持,或者编码设置不正确。解决这个问题的关键在于引入...
这个资源包包含了使用JFreeChart生成图表的代码示例,以及作者的整理笔记,旨在帮助开发者更好地理解和应用JFreeChart。 首先,JFreeChart的核心功能是生成各种类型的图表,如: 1. **饼形图(Pie Chart)**:饼形...
在这个“jfreechart生成图片及导出pdf、excel”的主题中,我们将深入探讨如何利用JFreeChart来生成这些图表,并将其导出为PDF和Excel格式。 1. **JFreeChart基本使用** JFreeChart库提供了多种图表类型,包括...
例如,我们可以使用JDBC从数据库读取数据,填充到`Dataset`中,再用JFreeChart生成图表。 此外,JFreeChart还支持动态更新图表,这对于实时监控或数据分析应用特别有用。通过JavaScript和Ajax,客户端可以定期请求...
JFreeChart是一款强大的Java图形库,它允许开发者在Java应用程序或网页中生成高质量的图表,包括饼图和环图...结合提供的代码示例和实践,你将能够掌握利用JFreeChart生成图表的关键技术,提升你的Java应用的用户体验。
在实际应用中,你可能需要根据用户请求动态生成图表和PDF,这可能涉及到数据库查询、业务逻辑处理等步骤。同时,要注意性能优化,避免一次性加载大量数据或创建过多图表导致内存压力。 总结,JSP结合JFreeChart和...
纯Java动态生成 SVG 饼图与 JFreeChart 超强功能生成 SVG 图表 在本文中,我们将探讨如何使用 Java 生成 SVG 饼图,并使用 JFreeChart 生成 SVG 图表。我们还将讨论 JFreeChart 的一些缺陷和解决方案。 一、Java ...
生成图表后,我们可以将其保存为图片文件,或者直接在Web应用中显示。在Web环境中,通常会将图表转换为JPEG或PNG格式的图像流,然后返回给客户端。以下是一个简单的例子,展示了如何将JFreeChart转换为图像流并写入...