zsh_root
2024-01-02 7b595546af704983dbafcd0d385c8768ddacefc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package tbDataModel_Dell;
import java.awt.Color;
import java.awt.Font;
import java.util.Vector;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.DefaultKeyedValues;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
 
import tbDataModel.Hispower;
 
/**
 * XYÕÛÏßͼ
 * 
 */
public class LineXy  {    
    static JFreeChart chart=null;
 
 
    /**
     * Éú³ÉJFreeChart
     */    
    private static JFreeChart getJFreeChart(String name,Vector<Hispower> hisvec) {    
        CategoryDataset dataset = null;
        DefaultKeyedValues keyedValues = new DefaultKeyedValues();
        int size=hisvec.size();
        if(size !=0) {
            for(int i=0;i<size;i++) {
                Hispower pow=hisvec.get(i);
                int power=Integer.parseInt(pow.getPower());
                keyedValues.addValue(pow.getData(), power);
            }
            dataset = DatasetUtilities.createCategoryDataset(name, keyedValues);
            chart = ChartFactory.createLineChart("", // Í¼±í±êÌâ
                    "ÈÕÆÚ", // xÖá±êÇ©
                    "µçÁ¿(%)", // yÖá±êÇ©
                    dataset, // Êý¾Ý¼¯
                    PlotOrientation.VERTICAL, // Í¼±í·½Ïò£ºË®Æ½¡¢´¹Ö±
                    true, // ÊÇ·ñÏÔʾͼÀý
                    false, // ÊÇ·ñÉú³É¹¤¾ß
                    false // ÊÇ·ñÉú³ÉURLÁ´½Ó
                    );    
            // ÐÞ¸Ä×ÖÌå
            updateFont(chart);
        }        
        return chart;
    }
 
    /**
     * ÐÞ¸Ä×ÖÌå
     * 
     * @param chart
     */
    private static void updateFont(JFreeChart chart) {
 
        // ±êÌâ
        TextTitle textTitle = chart.getTitle();
        textTitle.setFont(new Font("ËÎÌå", Font.PLAIN, 20));
        LegendTitle legendTitle = chart.getLegend();
        legendTitle.setItemFont(new Font("ËÎÌå", Font.PLAIN, 14));
        // Í¼±í
        CategoryPlot categoryPlot = chart.getCategoryPlot();
 
        CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
        // XÖá×ÖÌå
        categoryAxis.setTickLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
        // XÖá±êÇ©×ÖÌå
        categoryAxis.setLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
 
        ValueAxis valueAxis = categoryPlot.getRangeAxis();
        // yÖá×ÖÌå
        valueAxis.setTickLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
        // yÖá±êÇ©×ÖÌå
        valueAxis.setLabelFont(new Font("ËÎÌå", Font.PLAIN, 14));
    }
 
    /**
     * ÉèÖÃͼ±í
     * 
     * @param chart
     */
    public  JPanel getMb(String name) {
        JPanel mb=new JPanel();
        mb.setBackground(Color.white);
        // ÐÞ¸Ä×ÖÌå
        mb.add(new ChartPanel(getJFreeChart(name,Dell_hispower.getHispower_vec())));        
        return mb;
    }
 
}