java繪製曲線圖
阿新 • • 發佈:2019-01-27
import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class JFramechart extends ApplicationFrame { /** * */ private static final long serialVersionUID = 1L; public JFramechart(String s) { super(s); setContentPane(createDemoLine()); this.pack(); RefineryUtilities.centerFrameOnScreen(this); this.setVisible(true); // this.setDefaultCloseOperation(EXIT_ON_CLOSE); } //public static void main(String[] args) { // JFramechart fjc = new JFramechart("折線圖",); // fjc.pack(); // RefineryUtilities.centerFrameOnScreen(fjc); // fjc.setVisible(true); // // fjc.setDefaultCloseOperation(HIDE_ON_CLOSE); // } // 生成顯示圖表的面板 public static JPanel createDemoLine() { JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); } // 生成圖表主物件JFreeChart public static JFreeChart createChart(DefaultCategoryDataset linedataset) { // 定義圖表物件 JFreeChart chart = ChartFactory.createLineChart("歷史記錄曲線", //折線圖名稱 "時間", // 橫座標名稱 "傾角(X軸、Y軸)", // 縱座標名稱 linedataset, // 資料 PlotOrientation.VERTICAL, // 水平顯示影象 true, // include legend true, // tooltips false // urls ); CategoryPlot plot = chart.getCategoryPlot(); plot.setRangeGridlinesVisible(true); //是否顯示格子線 plot.setBackgroundAlpha(0.3f); //設定背景透明度 NumberAxis rangeAxis = (NumberAxis)plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); rangeAxis.setAutoRangeIncludesZero(true); rangeAxis.setUpperMargin(0.20); rangeAxis.setLabelAngle(Math.PI / 2.0); return chart; } // 生成資料 public static DefaultCategoryDataset createDataset() { DefaultCategoryDataset linedataset = new DefaultCategoryDataset(); MyData md=new MyData(); double x=md.getX(); double y=md.getX(); double t=md.getX(); draw(x,y,t,linedataset); return linedataset; } public static DefaultCategoryDataset draw(double x,double y,double t,DefaultCategoryDataset linedataset){ DefaultCategoryDataset lds = new DefaultCategoryDataset(); String series1 = "傾角(X軸)"; String series2 = "傾角(Y軸)"; String series3 = "溫度"; // 橫軸名稱(列名稱) String type1 = "1月"; String type2 = "2月"; String type3 = "3月"; String type4="4月"; lds=linedataset; lds.addValue(4.2, series1, type1); linedataset.addValue(x, series1, type2); linedataset.addValue(5.2, series1, type3); linedataset.addValue(3.9, series1, type4); linedataset.addValue(y, series2, type1); linedataset.addValue(5.2, series2, type2); linedataset.addValue(7.9, series2, type3); linedataset.addValue(t, series3, type1); linedataset.addValue(9.2, series3, type2); linedataset.addValue(8.9, series3, type3); return linedataset; } }