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