package com.jfreechart; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Iterator; import java.util.List; import java.util.Random; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.DateTick; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.labels.StandardXYItemLabelGenerator; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYItemRenderer; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.time.Day; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RectangleInsets; import org.jfree.ui.TextAnchor; /** * * @ClassName: JFreeChart_TimeSeriesChart * @author xialong * @date Jan 25, 2011 7:00:25 PM * @Description: * JFreeChart生成时序图 * */ public class JFreeChart_TimeSeriesChart { /** * @param args */ public static void main(String[] args) { try { print(); } catch (IOException e) { e.printStackTrace(); } } /** * 输出图片 * @throws IOException */ public static void print() throws IOException{ FileOutputStream fos = new FileOutputStream("D://jfreechart//timeSeriesChart"+System.currentTimeMillis()+".jpg"); ChartUtilities.writeChartAsJPEG(fos,//输出到那个流, 1, //图片质量,0~1 getJFreeChart(), //图表对象 1200,//宽 600,//高 null//ChartRenderingInfo信息 ); fos.close(); } /** * 产生JFreeChart对象 * * @return */ public static JFreeChart getJFreeChart() { JFreeChart imgChart=null; // JFreeChart对象 参数:标题,目录轴显示标签,数值轴显示标签,数据集,是否显示图例,是否生成工具,是否生成URL连接 //平面 imgChart = ChartFactory.createTimeSeriesChart("", "X轴", "Y轴", getDataSet(), true, true, false); imgChart.setBackgroundPaint(Color.white); imgChart.setBorderVisible(true);// 边框可见 TextTitle title = new TextTitle("时间序列图", new Font("宋体", Font.BOLD, 20)); // 解决曲线图片标题中文乱码问题 imgChart.setTitle(title); //解决图表底部中文乱码问题 imgChart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); //获得 plot : XYPlot!! XYPlot xyplot = (XYPlot)imgChart.getPlot(); xyplot.setBackgroundPaint(Color.lightGray); xyplot.setDomainGridlinePaint(Color.white); xyplot.setRangeGridlinePaint(Color.white); xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); xyplot.setDomainCrosshairVisible(true); xyplot.setRangeCrosshairVisible(true); //设置x轴坐标值斜着显示 DateAxis dateAxis = new DateAxis("日期") { @SuppressWarnings("unchecked") protected List<DateTick> refreshTicksHorizontal(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge) { List ticks = super.refreshTicksHorizontal(g2, dataArea, edge); List<DateTick> newTicks = new ArrayList<DateTick>(); for (Iterator it = ticks.iterator(); it.hasNext();) { DateTick tick = (DateTick) it.next(); newTicks.add(new DateTick(tick.getDate(), tick.getText(), TextAnchor.TOP_RIGHT, TextAnchor.TOP_RIGHT, -Math.PI/3)); } return newTicks; } }; xyplot.setDomainAxis(dateAxis); // Y轴 NumberAxis numberaxis = (NumberAxis) xyplot.getRangeAxis(); setNumberAxis(numberaxis); // x轴 ValueAxis domainAxis = xyplot.getDomainAxis(); setDomainAxis(domainAxis); XYItemRenderer xyitemrenderer = xyplot.getRenderer(); if(xyitemrenderer instanceof XYLineAndShapeRenderer){ XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyitemrenderer; //数据点可见 xylineandshaperenderer.setBaseShapesVisible(true); //数据点是实心点 xylineandshaperenderer.setBaseShapesFilled(true); //数据点显示数据 xylineandshaperenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); xylineandshaperenderer.setBaseItemLabelsVisible(true); } //对domain 轴上日期显示格式定义 DateAxis dateaxis = (DateAxis)xyplot.getDomainAxis(); dateaxis.setDateFormatOverride(new SimpleDateFormat("MM-DD")); return imgChart; } /** * 设置X轴 * @param domainAxis */ private static void setDomainAxis(ValueAxis domainAxis){ // 解决x轴坐标上中文乱码 domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); // 解决x轴标题中文乱码 domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14)); // 用于显示X轴刻度 domainAxis.setTickMarksVisible(true); } /** * 设置Y轴 * @param numberAxis */ private static void setNumberAxis(NumberAxis numberaxis){ numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); // 是否显示零点 numberaxis.setAutoRangeIncludesZero(true); numberaxis.setAutoTickUnitSelection(false); // 解决Y轴标题中文乱码 numberaxis.setLabelFont(new Font("sans-serif", Font.PLAIN, 14)); // numberaxis.setTickUnit(new NumberTickUnit(10000));//Y轴数据间隔 } /** * 产生数据源 * * @return */ private static XYDataset getDataSet() { Random rand = new Random(); TimeSeriesCollection dateset = new TimeSeriesCollection(); TimeSeries timeSeries1 = new TimeSeries("JFreeChart",Day.class); Calendar cal = Calendar.getInstance(); for(int i=1;i<=cal.get(Calendar.DAY_OF_MONTH);i++){ timeSeries1.add(new Day(i,1,2010),rand.nextInt(10)); } dateset.addSeries(timeSeries1); return dateset; } }
图片输出如下
您还没有登录,请您登录后再发表评论
8. **其他特性**:JFreeChart还支持时间序列图表(TimeSeriesChart),适用于金融数据分析;并且提供了3D图表的支持,使可视化效果更丰富。 总结来说,`JFreeChart_jar包`是Java开发中用于创建统计图和统计表的强大...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、TimeSeriesChart(时间序列图表)和XYChart(X-Y坐标系图表)。这些类型的图表可以通过API创建...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、XYChart(XY坐标系图表,如散点图和线图)、TimeSeriesChart(时间序列图表)等。通过Demo,你...
3. **生成图表(Chart)**:通过`ChartFactory`类的静态方法创建图表,这里使用的是时间序列图(TimeSeriesChart),并指定图表标题、X轴和Y轴的名称等属性。 4. **配置图表的绘制区域(Plot)**:设置`XYPlot`的...
在Java端,我们需要根据数据配置JFreeChart的CategoryPlot或TimeSeriesChart,然后同样转化为图像。Flex端接收图像并显示,可以利用ScrollGrid或Timeline控件增强用户体验,使用户能方便地浏览和交互。 在提供的...
public TimeSeriesChart() { XYDataset xydataset = createDataset(); JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("货票生产统计共享库票数", "时间", "货票票数", xydataset, true, true, ...
JFreeChart 支持多种图表类型,如柱状图(BarChart)、饼图(PieChart)、线图(LineChart)、面积图(AreaChart)、散点图(ScatterPlot)以及更复杂的图表,如甘特图(GanttChart)和时间序列图(TimeSeriesChart...
jfreechart-1.0.19压缩包中有一个jfreechart-1.0.19-demo.jar,里面演示了各种图表的制作案例,包括BarChart、LineChart、PieChart、TimeSeriesChart、XYSeries等等,共309个例子,现开放源码,请各位下载,欢迎交流...
你可以创建一个 `TimeSeriesChart` 来展示这些数据的变化趋势。 7. **高级特性** JFreeChart 还支持更复杂的图表类型,如甘特图、3D 图表和组合图表。此外,它还提供交互功能,如鼠标悬停时显示数据提示、点击图表...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图,如柱状图、线形图)、PieChart(饼图)、XYChart(XY坐标图,如散点图、折线图)和TimeSeriesChart(时间序列图)。每种图表都有丰富的...
JFreeChart提供了多种图表类型,包括饼图(PieChart)、柱状图(BarChart)、时间序列图(TimeSeriesChart)等。这些图表可以通过创建相应的图表工厂类实例化,然后通过设置数据源、标题、颜色等属性来定制图表样式...
- `GanttChart`和`TimeSeriesChart`分别用于创建甘特图和时间序列图,适用于项目管理和时间相关的数据分析。 8. **国际化支持** - JFreeChart提供多语言支持,可以通过配置文件更改图表的默认语言。 总的来说,`...
- **ChartFactory**: 这是创建各种图表的入口,包括CategoryChart、PieChart、TimeSeriesChart等。通过指定数据源、图表类型和配置选项,可以轻松生成所需的图表。 - **Dataset**: 数据集接口,用于存储图表的数据...
- **TimeSeriesChart**:专为时间序列数据设计的图表。 - **GanttChart**:用于甘特图,展示项目的时间进度。 **2. 图表组件** JFreeChart 提供了多个组件,如Legend(图例)、Title(标题)、Subtitle(副标题)...
你可以根据需求创建不同类型的图表,如 CategoryChart(分类图表)用于展示分类数据,PieChart(饼图)用于展示比例关系,TimeSeriesChart(时间序列图表)用于展示随时间变化的数据等。 2. **绘图(Plot)**:绘图...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图、条形图)、PieChart(饼图)、XYChart(X-Y坐标图表,如线图、散点图)和TimeSeriesChart(时间序列图表),满足不同数据...
为了显示传感器数据,首先创建一个JFreeChart对象,指定图表类型(例如,TimeSeriesChart用于时间序列数据)。然后,你可以添加系列到图表,每个系列对应传感器的一种测量值。数据点可以通过添加TimeSeriesDataItem...
- 时间序列图(TimeSeriesChart):专门用于处理时间序列数据。 3. **创建图表**:创建图表的基本步骤通常包括: - 创建一个`CategoryDataset`或`TimeSeriesCollection`来存储数据。 - 使用数据集创建`...
- 时间序列图(TimeSeriesChart):专为时间序列数据设计。 **4. 示例代码** 在`JfreeDemo`中,可能包含了如下示例代码: - `PieChartDemo.java`: 展示如何创建和定制饼图。 - `BarChartDemo.java`: 创建一个...
- 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...
相关推荐
8. **其他特性**:JFreeChart还支持时间序列图表(TimeSeriesChart),适用于金融数据分析;并且提供了3D图表的支持,使可视化效果更丰富。 总结来说,`JFreeChart_jar包`是Java开发中用于创建统计图和统计表的强大...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、TimeSeriesChart(时间序列图表)和XYChart(X-Y坐标系图表)。这些类型的图表可以通过API创建...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图和折线图)、PieChart(饼图)、XYChart(XY坐标系图表,如散点图和线图)、TimeSeriesChart(时间序列图表)等。通过Demo,你...
3. **生成图表(Chart)**:通过`ChartFactory`类的静态方法创建图表,这里使用的是时间序列图(TimeSeriesChart),并指定图表标题、X轴和Y轴的名称等属性。 4. **配置图表的绘制区域(Plot)**:设置`XYPlot`的...
在Java端,我们需要根据数据配置JFreeChart的CategoryPlot或TimeSeriesChart,然后同样转化为图像。Flex端接收图像并显示,可以利用ScrollGrid或Timeline控件增强用户体验,使用户能方便地浏览和交互。 在提供的...
public TimeSeriesChart() { XYDataset xydataset = createDataset(); JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("货票生产统计共享库票数", "时间", "货票票数", xydataset, true, true, ...
JFreeChart 支持多种图表类型,如柱状图(BarChart)、饼图(PieChart)、线图(LineChart)、面积图(AreaChart)、散点图(ScatterPlot)以及更复杂的图表,如甘特图(GanttChart)和时间序列图(TimeSeriesChart...
jfreechart-1.0.19压缩包中有一个jfreechart-1.0.19-demo.jar,里面演示了各种图表的制作案例,包括BarChart、LineChart、PieChart、TimeSeriesChart、XYSeries等等,共309个例子,现开放源码,请各位下载,欢迎交流...
你可以创建一个 `TimeSeriesChart` 来展示这些数据的变化趋势。 7. **高级特性** JFreeChart 还支持更复杂的图表类型,如甘特图、3D 图表和组合图表。此外,它还提供交互功能,如鼠标悬停时显示数据提示、点击图表...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图,如柱状图、线形图)、PieChart(饼图)、XYChart(XY坐标图,如散点图、折线图)和TimeSeriesChart(时间序列图)。每种图表都有丰富的...
JFreeChart提供了多种图表类型,包括饼图(PieChart)、柱状图(BarChart)、时间序列图(TimeSeriesChart)等。这些图表可以通过创建相应的图表工厂类实例化,然后通过设置数据源、标题、颜色等属性来定制图表样式...
- `GanttChart`和`TimeSeriesChart`分别用于创建甘特图和时间序列图,适用于项目管理和时间相关的数据分析。 8. **国际化支持** - JFreeChart提供多语言支持,可以通过配置文件更改图表的默认语言。 总的来说,`...
- **ChartFactory**: 这是创建各种图表的入口,包括CategoryChart、PieChart、TimeSeriesChart等。通过指定数据源、图表类型和配置选项,可以轻松生成所需的图表。 - **Dataset**: 数据集接口,用于存储图表的数据...
- **TimeSeriesChart**:专为时间序列数据设计的图表。 - **GanttChart**:用于甘特图,展示项目的时间进度。 **2. 图表组件** JFreeChart 提供了多个组件,如Legend(图例)、Title(标题)、Subtitle(副标题)...
你可以根据需求创建不同类型的图表,如 CategoryChart(分类图表)用于展示分类数据,PieChart(饼图)用于展示比例关系,TimeSeriesChart(时间序列图表)用于展示随时间变化的数据等。 2. **绘图(Plot)**:绘图...
1. **图表类型**:JFreeChart支持多种图表类型,包括CategoryChart(分类图表,如柱状图、条形图)、PieChart(饼图)、XYChart(X-Y坐标图表,如线图、散点图)和TimeSeriesChart(时间序列图表),满足不同数据...
为了显示传感器数据,首先创建一个JFreeChart对象,指定图表类型(例如,TimeSeriesChart用于时间序列数据)。然后,你可以添加系列到图表,每个系列对应传感器的一种测量值。数据点可以通过添加TimeSeriesDataItem...
- 时间序列图(TimeSeriesChart):专门用于处理时间序列数据。 3. **创建图表**:创建图表的基本步骤通常包括: - 创建一个`CategoryDataset`或`TimeSeriesCollection`来存储数据。 - 使用数据集创建`...
- 时间序列图(TimeSeriesChart):专为时间序列数据设计。 **4. 示例代码** 在`JfreeDemo`中,可能包含了如下示例代码: - `PieChartDemo.java`: 展示如何创建和定制饼图。 - `BarChartDemo.java`: 创建一个...
- 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...