( 1 )平面线图
生成平面线图:
JFreeChart chart = ChartFactory. createLineChart(String title, // 图标题 String categoryAxisLabel, //x 轴标题 String valueAxisLabel, //y 轴标题 CategoryDataset dataset, // 数据源 PlotOrientation orientation, // 显示方向 boolean legend, // 是否显示图例 boolean tooltips, // 是否显示 tooltip boolean urls); // 是否指定 url
平面线图除了的 Plot 对象中绘制单元对象是 LineAndShapeRenderer 对象,其他一切组成对象与平面柱状图相同。
获取 Renderer 操作:
LineAndShapeRenderer renderer=(LineAndShapeRenderer) plot.getRenderer();
其他参考平面柱状图。
( 2 ) 3D 线图
对应工厂方法为 createLineChart3D ,参数与 createLineChart 相同。 3D 线图的组成对象除了绘制单元对象是 LineAndShapeRenderer3D 对象,其他一切组成对象与 3D 柱状图相同。
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; public class TestLineChart { public static XYSeriesCollection createDataSet() { XYSeriesCollection seriesCollection = new XYSeriesCollection(); XYSeries series1 = new XYSeries("平均收视率"); XYSeries series2 = new XYSeries("最高收视率"); XYSeries series3 = new XYSeries("最低收视率"); series1.add(1, 7.25); series1.add(2, 4.81); series1.add(3, 3.69); series1.add(4, 3.53); series1.add(5, 2.95); series1.add(6, 3.96); series2.add(1, 10.57); series2.add(2, 5.37); series2.add(3, 4.87); series2.add(4, 4.87); series2.add(5, 3.63); series2.add(6, 5.27); series3.add(1, 4.76); series3.add(2, 3.63); series3.add(3, 2.82); series3.add(4, 2.82); series3.add(5, 2.37); series3.add(6, 3.33); seriesCollection.addSeries(series1); seriesCollection.addSeries(series2); seriesCollection.addSeries(series3); return seriesCollection; } public static void createLineChart() { JFreeChart chart = ChartFactory.createXYLineChart("无敌珊宝妹收视率走势图", "集数", "收视率百分点", createDataSet(), PlotOrientation.VERTICAL, true, true, false); ChartFrame frame=new ChartFrame("Test Line Chart",chart); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { createLineChart(); } }
效果图