source: other-projects/trunk/greenstone3-extension/mat/org/greenstone/gsdl3_extension/mat/DrawXYChart.java@ 18091

Last change on this file since 18091 was 18091, checked in by cc108, 15 years ago

new Mat source code

File size: 3.6 KB
Line 
1package org.greenstone.gsdl3_extension.mat;
2
3import java.awt.Dimension;
4import java.util.HashMap;
5import java.util.Iterator;
6import java.util.Set;
7import javax.swing.JPanel;
8
9import org.jfree.chart.ChartFactory;
10import org.jfree.chart.ChartPanel;
11import org.jfree.chart.JFreeChart;
12import org.jfree.chart.axis.CategoryAxis;
13import org.jfree.chart.axis.CategoryLabelPositions;
14import org.jfree.chart.plot.CategoryPlot;
15import org.jfree.chart.plot.PlotOrientation;
16import org.jfree.chart.renderer.category.BarRenderer;
17import org.jfree.chart.renderer.category.CategoryItemRenderer;
18import org.jfree.data.category.CategoryDataset;
19import org.jfree.data.category.DefaultCategoryDataset;
20import org.jfree.ui.ApplicationFrame;
21import org.jfree.ui.RefineryUtilities;
22
23public class DrawXYChart extends ApplicationFrame
24{
25 private static String Item = null;
26 private static HashMap map = new HashMap();
27
28 public DrawXYChart(String str1, String str2, HashMap hp, int operation) {
29
30 super("Frequency V.S "+str2);
31
32 Item = str2;
33 map = hp;
34
35 JPanel jpanel = createDemoPanel(operation);
36 jpanel.setPreferredSize(new Dimension(500, 270));
37 setContentPane(jpanel);
38
39 pack();
40 RefineryUtilities.centerFrameOnScreen(this);
41 setVisible(true);
42 }
43
44 private static CategoryDataset createDataset() {
45
46 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
47 Set s = map.keySet();
48 Iterator i = s.iterator();
49
50 while(i.hasNext()){
51 String metaName = (String)i.next();
52 Integer in = (Integer)map.get(metaName);
53 int number = in.intValue();
54 defaultcategorydataset.addValue(number,metaName,metaName);
55 }
56 return defaultcategorydataset;
57 }
58
59 private static CategoryDataset createDataset2() {
60
61 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
62 Set s = map.keySet();
63 Iterator i = s.iterator();
64 int counter = 0;
65
66 while(i.hasNext()){
67 String metaName = (String)i.next();
68 Integer in = (Integer)map.get(metaName);
69 int number = in.intValue();
70 defaultcategorydataset.addValue(number , metaName, counter+"");
71 counter++;
72 }
73 return defaultcategorydataset;
74 }
75
76 private static JFreeChart createChart(CategoryDataset categorydataset) {
77
78 JFreeChart jfreechart = ChartFactory.createBarChart3D("",Item,"Frequency", categorydataset,PlotOrientation.VERTICAL, false,true, false);
79
80 CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
81 CategoryAxis categoryaxis = categoryplot.getDomainAxis();
82 categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.39269908169872414));
83
84 CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
85 categoryitemrenderer.setBaseItemLabelsVisible(true);
86
87 BarRenderer barrenderer = (BarRenderer) categoryitemrenderer;
88 barrenderer.setItemMargin(0.2);
89
90 return jfreechart;
91 }
92
93 public static JPanel createDemoPanel(int operation) {
94
95 JFreeChart jfreechart = createChart(createDataset());
96
97 if(operation == 2){
98 jfreechart = createChart(createDataset2());
99 }
100 return new ChartPanel(jfreechart);
101 }
102
103 /*
104 public static void main(String[] strings) {
105 DrawXYChart DrawXYChart
106 = new DrawXYChart("3D Bar Chart Demo 3", "title2",null,2);
107 DrawXYChart.pack();
108 RefineryUtilities.centerFrameOnScreen(DrawXYChart);
109 DrawXYChart.setVisible(true);
110 }
111 */
112
113 public void windowClosing(java.awt.event.WindowEvent event){
114 this.dispose();
115 }
116}
117
Note: See TracBrowser for help on using the repository browser.