The JFreeChart Class Library
Version 1.0.9
Developer Guide
Written by David Gilb e rt
January 7, 2008
c
2000-2008, Object Refinery Limited. All rights reserved.
IMPORTANT NOTICE:
We work hard to make this document as accurate and informative as we can, but
cannot guarantee that it is error-free.
Contents
1 Introduction 16
1.1 What is JFreeChart? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Comments and Suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Sample Charts 19
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Pie Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Bar Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Line Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 XY Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.6 Time Series Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7 Histograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8 Area Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.9 Difference Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.10 Step Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.11 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.12 Multiple Axis Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.13 Combined and Overlaid Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.14 Future Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 Downloading and Installing JFreeChart 34
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Unpacking the Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 Running the Demonstration Applications . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Configuring JFreeChart for use in IDEs . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.6 Compiling the Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 Generating the Javadoc Docume ntation . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Using JFreeChart 37
4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Creating Your First Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5 Pie Charts 40
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Creating a Simple Pie Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Section Colours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 Section Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.5 Null, Zero and Negative Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.6 Section and Legend Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.7 Explo ded Sec tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1
CONTENTS 2
5.8 3D Pie Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.9 Multiple Pie Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6 Bar Charts 45
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 A Bar Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.3 The ChartFactory Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.4 Simple Chart Customisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.5 Customising the Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 Line Charts 51
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 A Line Chart Based On A Category Dataset . . . . . . . . . . . . . . . . . . . . . . 51
7.3 A Line Chart Based On An XYDataset . . . . . . . . . . . . . . . . . . . . . . . . . 56
8 Time Series Charts 61
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2 Time Series Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9 Customising Charts 67
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2 Chart Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3 Plot Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.4 Axis Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
10 Dynamic Charts 72
10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
10.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
10.3 The Demo Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
11 Tooltips 77
11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
11.2 Generating Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
11.3 Collecting Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.4 Displaying Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.5 Disabling Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.6 Customising Tool Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
12 Item Labels 79
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.2 Displaying Item Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.3 Item Label Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
12.4 Item Label Positioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
12.5 Customising the Item Label Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
12.6 Example 1 - Values Above a Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . 84
12.7 Example 2 - Displaying Percentages . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
13 Multiple Axes and Datasets 91
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
13.2 An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
13.3 Hints and Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CONTENTS 3
14 Combined Charts 94
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
14.2 Combined Domain Category Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
14.3 Combined Range Category Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14.4 Combined Domain XY Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
14.5 Combined Range XY Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
15 Datasets and JDBC 99
15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
15.2 About JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
15.3 Sample Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
15.4 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
15.5 The JDBC Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
15.6 The Demo Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
16 Exporting Charts to Acrobat PDF 103
16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.2 What is Acrobat PDF? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.3 iText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.4 Graphics2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
16.5 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
16.6 The Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
16.7 Viewing the PDF File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
16.8 Unicode Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
17 Exporting Charts to SVG Format 111
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
17.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
17.3 A Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
18 Applets 114
18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
18.2 Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
18.3 A Sample Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
19 Servlets 118
19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
19.2 A Simple Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
19.3 Compiling the Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
19.4 Deploying the Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
19.5 Embedding Charts in HTML Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
19.6 Supporting Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
19.7 Deploying Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
20 Miscellaneous 129
20.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
20.2 X11 / Headless Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
20.3 Java Server Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
20.4 Loading Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
21 Packages 130
21.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
CONTENTS 4
22 Package: org.j free.chart 131
22.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
22.2 ChartColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
22.3 ChartFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
22.4 ChartFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
22.5 ChartMouseEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
22.6 ChartMouseListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
22.7 ChartPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
22.8 ChartRenderingInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
22.9 ChartUtilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
22.10ClipPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
22.11DrawableLegendItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
22.12Effect3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
22.13HashUtilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
22.14JFreeChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
22.15LegendItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
22.16LegendItemCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
22.17LegendItemSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
22.18LegendRenderingOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
22.19PolarChartPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
23 Package: org.j free.chart.annotations 155
23.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
23.2 AbstractXYAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
23.3 CategoryAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
23.4 CategoryLineAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
23.5 CategoryPointerAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
23.6 CategoryTextAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
23.7 TextAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
23.8 XYAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
23.9 XYBoxAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
23.10XYDrawableAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
23.11XYImageAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
23.12XYLineAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
23.13XYPointerAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
23.14XYPolygonAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
23.15XYShapeAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
23.16XYTextAnnotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
24 Package: org.j free.chart.axis 177
24.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
24.2 Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
24.3 AxisCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
24.4 AxisLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
24.5 AxisSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
24.6 AxisState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
24.7 CategoryAnchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
24.8 CategoryAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
24.9 CategoryAxis3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
24.10CategoryLabelPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
24.11CategoryLabelPositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
24.12CategoryLabelWidthType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
24.13CategoryTick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
24.14ColorBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
24.15CompassFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
- 1
- 2
- 3
前往页