1:
40:
41: package ;
42:
43: import ;
44: import ;
45: import ;
46:
47: import ;
48: import ;
49: import ;
50: import ;
51: import ;
52: import ;
53: import ;
54: import ;
55: import ;
56: import ;
57: import ;
58: import ;
59: import ;
60:
61:
64: public class BarChartDemo1 extends ApplicationFrame {
65:
66:
71: public BarChartDemo1(String title) {
72: super(title);
73: CategoryDataset dataset = createDataset();
74: JFreeChart chart = createChart(dataset);
75: ChartPanel chartPanel = new ChartPanel(chart, false);
76: chartPanel.setPreferredSize(new Dimension(500, 270));
77: setContentPane(chartPanel);
78: }
79:
80:
85: private static CategoryDataset createDataset() {
86:
87:
88: String series1 = "First";
89: String series2 = "Second";
90: String series3 = "Third";
91:
92:
93: String category1 = "Category 1";
94: String category2 = "Category 2";
95: String category3 = "Category 3";
96: String category4 = "Category 4";
97: String category5 = "Category 5";
98:
99:
100: DefaultCategoryDataset dataset = new DefaultCategoryDataset();
101:
102: dataset.addValue(1.0, series1, category1);
103: dataset.addValue(4.0, series1, category2);
104: dataset.addValue(3.0, series1, category3);
105: dataset.addValue(5.0, series1, category4);
106: dataset.addValue(5.0, series1, category5);
107:
108: dataset.addValue(5.0, series2, category1);
109: dataset.addValue(7.0, series2, category2);
110: dataset.addValue(6.0, series2, category3);
111: dataset.addValue(8.0, series2, category4);
112: dataset.addValue(4.0, series2, category5);
113:
114: dataset.addValue(4.0, series3, category1);
115: dataset.addValue(3.0, series3, category2);
116: dataset.addValue(2.0, series3, category3);
117: dataset.addValue(3.0, series3, category4);
118: dataset.addValue(6.0, series3, category5);
119:
120: return dataset;
121:
122: }
123:
124:
131: private static JFreeChart createChart(CategoryDataset dataset) {
132:
133:
134: JFreeChart chart = ChartFactory.createBarChart(
135: "Bar Chart Demo 1",
136: "Category",
137: "Value",
138: dataset,
139: PlotOrientation.VERTICAL,
140: true,
141: true,
142: false
143: );
144:
145:
146:
147:
148: chart.setBackgroundPaint(Color.white);
149:
150:
151: CategoryPlot plot = (CategoryPlot) chart.getPlot();
152: plot.setBackgroundPaint(Color.lightGray);
153: plot.setDomainGridlinePaint(Color.white);
154: plot.setDomainGridlinesVisible(true);
155: plot.setRangeGridlinePaint(Color.white);
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166: final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
167: rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
168:
169:
170: BarRenderer renderer = (BarRenderer) plot.getRenderer();
171: renderer.setDrawBarOutline(false);
172:
173:
174: GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue,
175: 0.0f, 0.0f, new Color(0, 0, 64));
176: GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green,
177: 0.0f, 0.0f, new Color(0, 64, 0));
178: GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red,
179: 0.0f, 0.0f, new Color(64, 0, 0));
180: renderer.setSeriesPaint(0, gp0);
181: renderer.setSeriesPaint(1, gp1);
182: renderer.setSeriesPaint(2, gp2);
183:
184: CategoryAxis domainAxis = plot.getDomainAxis();
185: domainAxis.setCategoryLabelPositions(
186: CategoryLabelPositions.createUpRotationLabelPositions(
187: Math.PI / 6.0));
188:
189:
190: return chart;
191:
192: }
193:
194:
199: public static void main(String[] args) {
200: BarChartDemo1 demo = new BarChartDemo1("Bar Chart Demo 1");
201: demo.pack();
202: RefineryUtilities.centerFrameOnScreen(demo);
203: demo.setVisible(true);
204: }
205:
206: }