package com.cs.jfreechart;
import java.awt.Color;
import java.awt.Font;
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.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
public class TimeChartDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//生成时间顺序图
JFreeChart chart = ChartFactory.createTimeSeriesChart (
"图书销售统计表", //图表标题
"图书", //目录轴的显示标签
"销量", //数值轴的显示标签
getDateSet(), //数据
//PlotOrientation.HORIZONTAL, //图表方向水平
//PlotOrientation.VERTICAL, //图表方向垂直
true, //是否显示图例
false, //是否显示工具提示
false //是否生成URL
);
//设置标题及标题字体
chart.setTitle(new TextTitle("图书销售统计图",new Font("黑体",Font.ITALIC,22)));
//建一个图例
LegendTitle legendTitle = chart.getLegend(0);
//设置图例字体
legendTitle.setItemFont(new Font("宋体",Font.BOLD,14));
//获取时间顺序图plot对象
XYPlot plot = (XYPlot) chart.getPlot();
//设置柱型的颜色
plot.getRenderer().setSeriesPaint(0, Color.blue);
//取得横轴
ValueAxis categoryAxis = plot.getDomainAxis();
//设置横轴的字体
categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
//设置分类标签以45度倾斜
//categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
//设置分类标签字体
categoryAxis.setTickLabelFont(new Font("宋体",Font.BOLD,22));
//取得纵轴
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
//设置纵轴的字体
numberAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
//设置背景透明度(0~1)
plot.setBackgroundAlpha(0.9f);
//输出文件
FileOutputStream fos = new FileOutputStream("book.jpg");
//用ChartUtilities工具输出
ChartUtilities.writeChartAsJPEG(fos, chart, 800, 600);
fos.close();
}
private static XYDataset getDateSet() {
//创建一个TimeSeries对象
TimeSeries spring = new TimeSeries("JAVA教程",Month.class);
spring.add(new Month(10,2006),34);
spring.add(new Month(11,2006),27);
spring.add(new Month(12,2006),31);
spring.add(new Month(1,2007),17);
spring.add(new Month(2,2007),39);
TimeSeries lightweight = new TimeSeries("C#教程",Month.class);
lightweight.add(new Month(10,2006),28);
lightweight.add(new Month(11,2006),32);
lightweight.add(new Month(12,2006),11);
lightweight.add(new Month(1,2007),19);
lightweight.add(new Month(2,2007),12);
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(spring);
dataset.addSeries(lightweight);
return dataset;
}
}
分享到:
相关推荐
在JFreeChart中,`PolarChartDemo1`类提供了一个示例,创建`StandardPolarItemRenderer`渲染器,通过`PolarPlot`和`PolarAxis`设置数据和轴的属性,然后使用`createPolarChart()`方法构建雷达图。 4. **Test.java**...
JFreeChart的`PieChart`类支持创建饼形图,可以定制每个扇区的颜色、标签和工具提示。`PieDataset`接口用于存储数据,而`PiePlot`类则负责渲染饼图,允许我们调整切片的顺序、大小和动画效果。 **3. 柱状图** 柱状...
JFreeChart支持多种时间单位,如日期、小时、分钟等,并可以添加滚动、缩放等功能,提高交互性。 **6. 二维Y轴坐标图(Dual Y-Axis Chart)** 对于需要在同一图表中比较两个独立数值序列的情况,双Y轴图表非常有用...
- **示例:** 展示如何创建时间序列图表,并设置日期轴的格式。 #### 八、自定义图表 **8.1 引言** - **主题:** 介绍如何自定义图表的外观和行为。 **8.2 图表属性** - **内容:** 包括标题、背景色、边框等。 - ...
- **时序图(Time Series Chart)**:时序图用于表示按时间顺序的数据,常用于股票市场分析或历史数据可视化。 - **组合图(Combined Chart)**:组合图可以同时展示多种图表类型,如柱形图和折线图的组合,以更...
JFreeChart则是一个强大的Java库,用于生成各种类型的图表,如柱状图、饼图、时间序列图等,非常适合于数据可视化。在Struts2中集成JFreeChart,可以让我们在Web应用中方便地展示动态生成的数据。 **1. JFreeChart...
JFreeChart的时间序列图表可以自动识别时间戳,并按时间顺序排列数据点,方便进行趋势分析。 #### 9. 图表定制 ##### 9.1 属性定制 通过设置图表、绘图区域、坐标轴等组件的属性,实现对图表外观和行为的深度控制...
4. 使用`JFreeChart`的`createGanttChart()`方法创建Gantt图,传入数据集和图表标题。 5. 最后,将图表显示在`JFrame`或保存为图像文件。 在实际应用中,你可能还需要考虑一些高级特性,如任务的进度更新、资源分配...
- 实现图形化显示功能,如使用JFreeChart创建图表,显示每个城市的位置和最终路径。 **JFreeChart应用** JFreeChart是一个开源的Java库,提供了丰富的图表类型,包括折线图、柱状图和饼图等。在本例中,我们可以...
- 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...
在Java中,可以为每本书添加一个预约队列,按照时间顺序处理预约请求。当图书被归还时,系统会检查预约队列并通知下一个预约者。 此外,系统还需要提供报表和统计功能,如借阅排行榜、读者借阅频率等。这通常涉及...
任务创建与分配涉及到数据的增删改查操作,可以利用Java的持久化技术,如JDBC(Java Database Connectivity)来与数据库交互,或者使用ORM(Object-Relational Mapping)框架如Hibernate或MyBatis,简化数据库操作。...
使用Swing或JavaFX等图形用户界面库可以创建进度条组件。 4. **示波器波形图显示**:示波器波形图能直观地展示音乐的音频信号。这通常通过读取音频数据并进行傅立叶变换来实现,然后将结果显示在图形界面上。可能...
JFreeChart是一个强大的开源Java库,可以生成各种图表,包括线图、饼图、柱状图等,非常适合用来表示数据变化和动态过程,如磁盘调度中的磁头移动轨迹。 【标签解析】:“Java” 标签“Java”表明该项目使用Java...
1. **使用Java报表库**:Java报表库如JFreeChart、iText和Apache POI等,可以帮助我们处理复杂的表格和图表生成。这些库提供了丰富的API,可以自定义样式和布局,满足多样的报表需求。 2. **Web报表框架**:利用Web...