本文实例讲述了JFreeChart插件实现的折线图效果。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
package com.lei.jfreechart; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class LineCharts extends ApplicationFrame { /** * */ private static final long serialVersionUID = 1L; public LineCharts(String s) { super (s); setContentPane(createDemoLine()); } public static void main(String[] args) { LineCharts fjc = new LineCharts( "折线图" ); fjc.pack(); RefineryUtilities.centerFrameOnScreen(fjc); fjc.setVisible( true ); } // 生成显示图表的面板 public static JPanel createDemoLine() { JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); } // 生成图表主对象JFreeChart public static JFreeChart createChart(DefaultCategoryDataset linedataset) { // 定义图表对象 JFreeChart chart = ChartFactory.createLineChart( "一季度销售曲线" , //折线图名称 "时间" , // 横坐标名称 "销售额(百万)" , // 纵坐标名称 linedataset, // 数据 PlotOrientation.VERTICAL, // 水平显示图像 true , // include legend true , // tooltips false // urls ); CategoryPlot plot = chart.getCategoryPlot(); plot.setRangeGridlinesVisible( true ); //是否显示格子线 plot.setBackgroundAlpha( 0 .3f); //设置背景透明度 NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero( true ); rangeAxis.setUpperMargin( 0.20 ); rangeAxis.setLabelAngle(Math.PI / 2.0 ); return chart; } // 生成数据 public static DefaultCategoryDataset createDataset() { DefaultCategoryDataset linedataset = new DefaultCategoryDataset(); // 各曲线名称 String series1 = "冰箱" ; String series2 = "彩电" ; String series3 = "洗衣机" ; // 横轴名称(列名称) String type1 = "1月" ; String type2 = "2月" ; String type3 = "3月" ; linedataset.addValue( 0.0 , series1, type1); linedataset.addValue( 4.2 , series1, type2); linedataset.addValue( 3.9 , series1, type3); linedataset.addValue( 1.0 , series2, type1); linedataset.addValue( 5.2 , series2, type2); linedataset.addValue( 7.9 , series2, type3); linedataset.addValue( 2.0 , series3, type1); linedataset.addValue( 9.2 , series3, type2); linedataset.addValue( 8.9 , series3, type3); return linedataset; } } |
运行效果如下:
希望本文所述对大家java程序设计有所帮助。