package jfreechart; import java.awt.Color; import java.awt.Font; import java.io.File; 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.StandardChartTheme; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYItemRenderer; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.time.Day; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset; public class TimeSeriesChart { private TimeSeries prepareTimeSeries(String seriesName){ TimeSeries timeSeries = new TimeSeries(seriesName); Random random = new Random(); for(int i=0;i<10;i++){ timeSeries.add(new Day(21,(i+1),2014),random.nextInt(100)); } return timeSeries; } private XYDataset createDataset() { TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(prepareTimeSeries("timeseries01")); dataset.addSeries(prepareTimeSeries("timeseries02")); dataset.addSeries(prepareTimeSeries("timeseries03")); return dataset; } private void setUpTheme(){ //创建主题样式 StandardChartTheme standardChartTheme=new StandardChartTheme("CN"); //设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20)); //设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15)); //设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15)); //应用主题样式 ChartFactory.setChartTheme(standardChartTheme); } public void createTimeSeriesChart() throws IOException { setUpTheme(); JFreeChart timeSeriesChart = ChartFactory.createTimeSeriesChart( "title", "xLabel", "yLabel", createDataset(), true, true, false); setStyle(timeSeriesChart); ChartUtilities.saveChartAsPNG(new File("timeseries.png"), timeSeriesChart, 600, 600); } private void setStyle(JFreeChart timeSeriesChart) { XYPlot plot = timeSeriesChart.getXYPlot(); plot.setDomainGridlinePaint(Color.LIGHT_GRAY); plot.setRangeGridlinePaint(Color.LIGHT_GRAY); XYItemRenderer render = plot.getRenderer(); if (render instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) render; renderer.setBaseShapesVisible(true); renderer.setBaseShapesFilled(true); // set the first time series renderer.setSeriesLinesVisible(0, false); renderer.setSeriesPaint(0, Color.green); } } public static void main(String[] args) throws IOException { new TimeSeriesChart().createTimeSeriesChart(); } }
相关推荐
dataset.addValue(10, "Series 1", "Category 1"); // 添加更多数据点... ``` ### 图表组件 JFreeChart中的图表组件包括`Plot`、`Axis`、`Legend`等,它们共同决定了图表的外观和行为。例如,可以设置`Axis`的标签...
JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。...
- **解释**:这部分代码创建了三个 `TimeSeries` 对象,分别用来存储“空闲”、“总量”和“使用量”的数据,并将它们添加到 `TimeSeriesCollection` 中。每个 `TimeSeries` 对象代表了一个数据系列,可以用来绘制...
- **创建TimeSeriesCollection**:JFreeChart中的`TimeSeriesCollection`类用于存储多个`TimeSeries`对象,每个`TimeSeries`代表一条曲线。我们创建两个`TimeSeries`对象,分别对应夫妻双方的数据,然后遍历数据...
在JFreeChart中,`TimeSeries`类被用来存储时间戳和对应的数值对,便于后续绘制成图表。 2. **构建数据集(Dataset)**:将多个`TimeSeries`实例组合成一个`TimeSeriesCollection`对象,作为图表的数据源。 3. **...
每次有新的实时数据时,你可以向这个集合中添加一个`TimeSeries`对象,或者直接更新已有`TimeSeries`的值。 3. **创建画布**: JFreeChart提供了一个`ChartPanel`类,它是`JComponent`的子类,可以直接添加到Swing...
对于时序图,JFreeChart 提供了 `TimePeriodValues` 和 `TimeSeries` 等类来处理时间序列数据。在示例代码中,`TimePeriodValuesCollection` 用于收集多个 `TimePeriodValues` 对象,这些对象代表了不同时刻的数据点...
TimeSeries timeSeries = new TimeSeries("日访问", Day.class); timeSeries.add(new Day(1, 1, 2010), 50); // 添加更多数据... chartTime.addSeries(timeSeries); ``` 接下来,我们使用`ChartFactory`创建图表,...
JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联
散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生 PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。 本资源包含两个应用程序、一个API。应用程序下载后即可使用...
JFreeChart是一款开源的Java图表库,为开发者提供了丰富的图表制作功能,包括饼图(Pie Chart)、条形图(Bar Chart)、线图(Line Chart)、散点图(Scatter Plot)、时间序列图(Time Series Chart)、甘特图...
JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,可直接输出成图片文件,亦可被导出PDF或Excel文档。
import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.time.TimeSeriesDataItem; ``` 需要注意的是,在0.98及之后的版本中,JFreeChart的包名由`...
JFreeChart是基于Java的一个开源图表库,它提供了丰富的图表绘制功能,包括饼图(Pie Charts)、条形图(Bar Charts)、线图(Line Charts)、散点图(XY Plots)、时间序列图表(Time Series Charts)等多种类型。...
JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。...
TimeSeries series = new TimeSeries(""); // 添加数据点... TimeSeriesCollection dataset = new TimeSeriesCollection(series); JFreeChart chart = ChartFactory.createCandlestickChart( "Stock Price", //...
8. **时间序列图**(Time Series Chart):显示随时间变化的数据。 **自定义和扩展** JFreeChart 允许开发者深入定制图表的各个方面,如颜色、字体、标签、图例、网格线、数据标签等。此外,还可以通过扩展 ...
- **性能优化**:为了避免图表响应过慢,示例中的`TimeSeries`实例设置了最大年龄限制,这样可以确保图表只显示最近一段时间的数据,提高刷新速度。 - **自定义配置**:用户可以根据自己的需求调整图表的样式,例如...