package org.ncut.decloud.linecharts; 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 LineCharts extends ApplicationFrame { /** * */ private static final long serialVersionUID = 1L; public LineCharts(String s) { super(s); setContentPane(createDemoLine()); } public static void main(String[] args) { LineCharts fjc = new LineCharts("折線圖"); fjc.pack(); RefineryUtilities.centerFrameOnScreen(fjc); fjc.setVisible(true); }// 生成顯示圖表的面板 public static JPanel createDemoLine() { JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); }// 生成圖表主對象JFreeChart public static JFreeChart createChart(DefaultCategoryDataset linedataset) { // 定義圖表對象 JFreeChart chart = ChartFactory.createLineChart("一季度銷售曲線", // 折線圖名稱 "時間", // 橫座標名稱 "銷售額(百萬)", // 縱座標名稱 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(); // 各曲線名稱 String series1 = "冰箱"; String series2 = "彩電"; String series3 = "洗衣機"; // 橫軸名稱(列名稱) String type1 = "1月"; String type2 = "2月"; String type3 = "3月"; linedataset.addValue(0.0, series1, type1); linedataset.addValue(4.2, series1, type2); linedataset.addValue(3.9, series1, type3); linedataset.addValue(1.0, series2, type1); linedataset.addValue(5.2, series2, type2); linedataset.addValue(7.9, series2, type3); linedataset.addValue(2.0, series3, type1); linedataset.addValue(9.2, series3, type2); linedataset.addValue(8.9, series3, type3); return linedataset; } }
經師兄推薦一個畫圖工具gnuplot貌似更好使,配套gsl計算函數庫,號稱能代替matlab。下一步學習使用上。 java
java實現實現柱狀圖 餅狀圖的實例:http://blog.csdn.net/xuexin25java/article/details/7920476 echarts