jfreechart画折线图的方法 jfreechart是一款开放源代码的Java项目,提供了多种类型的图表,包括饼图、柱状图、线图、区域图、分布图、混合图、甘特图等等。应用jfreechart来画图需要两个jar包:jfreechart.jar和jcommon.jar。 画折线图的方法是使用CategoryDataset数据集来创建折线图,首先需要引入jfreechart和jcommon两个jar包,然后创建一个CategoryDataset对象,并将数据添加到该对象中,最后使用ChartFactory的createLineChart方法创建折线图。 在画折线图时需要注意一些细节,例如当数据多时,在JPanel中无法完全看到横坐标的值,显示为省略号。这时可以使用两种方法来解决这个问题,一种是将报表保存为图片时,设置图片的宽度足够大(2000或3000),图片可以显示横坐标值;另一种是设置X轴上的Label让其45度倾斜。 以下是使用jfreechart画折线图的示例代码: ```java import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.geom.Ellipse2D; import java.io.File; import java.io.IOException; import java.net.URL; import java.text.DecimalFormat; import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; 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.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RectangleInsets; import org.jfree.ui.RefineryUtilities; public class LineChartDemo1 extends ApplicationFrame { private static final long serialVersionUID = -6354350604313079793L; public LineChartDemo1(String string) { super(string); JPanel jpanel = createDemoPanel(); jpanel.setPreferredSize(new Dimension(500, 270)); setContentPane(jpanel); } // 创建折线图面板 private JPanel createDemoPanel() { // 创建CategoryDataset对象 CategoryDataset dataset = createDataset(); // 创建折线图 JFreeChart chart = ChartFactory.createLineChart( "折线图", // 图表标题 "X轴", // X轴标题 "Y轴", // Y轴标题 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向 true, // 是否显示legend true, // 是否显示tooltips false // 是否显示urls ); // 创建面板 ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(500, 270)); return chartPanel; } // 创建数据集 private CategoryDataset createDataset() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // 添加数据 dataset.addValue(100, "系列1", "-categories1"); dataset.addValue(200, "系列1", "categories2"); dataset.addValue(300, "系列1", "categories3"); dataset.addValue(400, "系列2", "categories1"); dataset.addValue(500, "系列2", "categories2"); dataset.addValue(600, "系列2", "categories3"); return dataset; } } ``` 在上面的代码中,我们首先创建了一个CategoryDataset对象,并将数据添加到该对象中,然后使用ChartFactory的createLineChart方法创建折线图,最后将折线图添加到一个JPanel中,并将该面板设置为应用程序的内容面板。
- 粉丝: 7
- 资源: 923
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助