1:
41:
42: package ;
43:
44: import ;
45: import ;
46:
47: import ;
48:
49: import ;
50: import ;
51: import ;
52: import ;
53: import ;
54: import ;
55: import ;
56: import ;
57: import ;
58: import ;
59: import ;
60: import ;
61: import ;
62: import ;
63:
64:
69: public class TimeSeriesChartDemo1 extends ApplicationFrame {
70:
71:
77: public TimeSeriesChartDemo1(String title) {
78: super(title);
79: ChartPanel chartPanel = (ChartPanel) createDemoPanel();
80: chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
81: chartPanel.setMouseZoomable(true, false);
82: setContentPane(chartPanel);
83: }
84:
85:
92: private static JFreeChart createChart(XYDataset dataset) {
93:
94: JFreeChart chart = ChartFactory.createTimeSeriesChart(
95: "Legal & General Unit Trust Prices",
96: "Date",
97: "Price Per Unit",
98: dataset,
99: true,
100: true,
101: false
102: );
103:
104: chart.setBackgroundPaint(Color.white);
105:
106: XYPlot plot = (XYPlot) chart.getPlot();
107: plot.setBackgroundPaint(Color.lightGray);
108: plot.setDomainGridlinePaint(Color.white);
109: plot.setRangeGridlinePaint(Color.white);
110: plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
111: plot.setDomainCrosshairVisible(true);
112: plot.setRangeCrosshairVisible(true);
113:
114: XYItemRenderer r = plot.getRenderer();
115: if (r instanceof XYLineAndShapeRenderer) {
116: XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
117: renderer.setBaseShapesVisible(true);
118: renderer.setBaseShapesFilled(true);
119: }
120:
121: DateAxis axis = (DateAxis) plot.getDomainAxis();
122: axis.setDateFormatOverride(new SimpleDateFormat("MMM-yyyy"));
123:
124: return chart;
125:
126: }
127:
128:
133: private static XYDataset createDataset() {
134:
135: TimeSeries s1 = new TimeSeries("L&G European Index Trust", Month.class);
136: s1.add(new Month(2, 2001), 181.8);
137: s1.add(new Month(3, 2001), 167.3);
138: s1.add(new Month(4, 2001), 153.8);
139: s1.add(new Month(5, 2001), 167.6);
140: s1.add(new Month(6, 2001), 158.8);
141: s1.add(new Month(7, 2001), 148.3);
142: s1.add(new Month(8, 2001), 153.9);
143: s1.add(new Month(9, 2001), 142.7);
144: s1.add(new Month(10, 2001), 123.2);
145: s1.add(new Month(11, 2001), 131.8);
146: s1.add(new Month(12, 2001), 139.6);
147: s1.add(new Month(1, 2002), 142.9);
148: s1.add(new Month(2, 2002), 138.7);
149: s1.add(new Month(3, 2002), 137.3);
150: s1.add(new Month(4, 2002), 143.9);
151: s1.add(new Month(5, 2002), 139.8);
152: s1.add(new Month(6, 2002), 137.0);
153: s1.add(new Month(7, 2002), 132.8);
154:
155: TimeSeries s2 = new TimeSeries("L&G UK Index Trust", Month.class);
156: s2.add(new Month(2, 2001), 129.6);
157: s2.add(new Month(3, 2001), 123.2);
158: s2.add(new Month(4, 2001), 117.2);
159: s2.add(new Month(5, 2001), 124.1);
160: s2.add(new Month(6, 2001), 122.6);
161: s2.add(new Month(7, 2001), 119.2);
162: s2.add(new Month(8, 2001), 116.5);
163: s2.add(new Month(9, 2001), 112.7);
164: s2.add(new Month(10, 2001), 101.5);
165: s2.add(new Month(11, 2001), 106.1);
166: s2.add(new Month(12, 2001), 110.3);
167: s2.add(new Month(1, 2002), 111.7);
168: s2.add(new Month(2, 2002), 111.0);
169: s2.add(new Month(3, 2002), 109.6);
170: s2.add(new Month(4, 2002), 113.2);
171: s2.add(new Month(5, 2002), 111.6);
172: s2.add(new Month(6, 2002), 108.8);
173: s2.add(new Month(7, 2002), 101.6);
174:
175:
176:
177:
178:
179:
180:
181:
182:
183: TimeSeriesCollection dataset = new TimeSeriesCollection();
184: dataset.addSeries(s1);
185: dataset.addSeries(s2);
186:
187: return dataset;
188:
189: }
190:
191:
196: public static JPanel createDemoPanel() {
197: JFreeChart chart = createChart(createDataset());
198: return new ChartPanel(chart);
199: }
200:
201:
206: public static void main(String[] args) {
207:
208: TimeSeriesChartDemo1 demo = new TimeSeriesChartDemo1(
209: "Time Series Chart Demo 1");
210: demo.pack();
211: RefineryUtilities.centerFrameOnScreen(demo);
212: demo.setVisible(true);
213:
214: }
215:
216: }