中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用jfreechart怎么畫折線圖

發布時間:2021-05-18 17:39:27 來源:億速云 閱讀:472 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關使用jfreechart怎么畫折線圖,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

JFreeChart 是開放源代碼站點SourceForge.net 上的一個 JAVA 項目,它主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖 ( 普通柱狀圖以及堆棧柱狀圖 )、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。

package yuth.jfree.demo; 
/** 
 * 使用 categoryDataset 數據集創建折線圖 
 * 當數據多時,在JPanel中無法完全看到橫坐標的值,顯示為省略號。 
 * 解決方法: 
 * 方法1、將報表保存為圖片時,設置圖片的寬度足夠大(2000或3000),圖片可以顯示橫坐標值。 
 *  這種方法治標不治本,所以有了第2種方法 
 * 方法2、設置X軸上的Lable讓其45度傾斜。 
 */ 
import java.awt.BasicStroke; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Font; 
import java.awt.geom.Ellipse2D; 
import java.io.File; 
import java.io.IOException; 
import java.net.URL; 
import java.text.DecimalFormat; 
import java.util.Random; 
 
import javax.swing.ImageIcon; 
import javax.swing.JPanel; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.ChartUtilities; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.axis.CategoryAxis; 
import org.jfree.chart.axis.CategoryLabelPositions; 
import org.jfree.chart.axis.NumberAxis; 
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; 
import org.jfree.chart.plot.CategoryPlot; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.chart.renderer.category.LineAndShapeRenderer; 
import org.jfree.chart.title.TextTitle; 
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.HorizontalAlignment; 
import org.jfree.ui.RectangleEdge; 
import org.jfree.ui.RectangleInsets; 
import org.jfree.ui.RefineryUtilities; 
 
public class LineChartDemo1 extends ApplicationFrame { 
 
 private static final long serialVersionUID = -6354350604313079793L; 
 /* synthetic */static Class class$demo$LineChartDemo1; 
 
 public LineChartDemo1(String string) { 
  super(string); 
 JPanel jpanel = createDemoPanel(); 
 jpanel.setPreferredSize(new Dimension(500, 270)); 
  setContentPane(jpanel); 
 } 
 
 
 
 /** 
 * 如何區分不同的圖例:根據DefaultCategoryDataset.addValue()的第二個參數是否相同來區分。 
 * 同一個圖例的數據的添加順序影響最終的顯示;不同圖例的數據的添加順序不影響最終的顯示。 
 * @return 
 */ 
 private static CategoryDataset createDataset() { 
 DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); 
 //defaultcategorydataset.addValue()的參數解析:(數值,圖例名,橫坐標值) 
/* 
 //添加數據方法1 
 //圖例1 
 defaultcategorydataset.addValue(212.0, "First", "1001.0"); 
  defaultcategorydataset.addValue(504.0, "First", "1001.1"); 
 defaultcategorydataset.addValue(1520.0, "First", "1001.2"); 
 
 //圖例2 
 defaultcategorydataset.addValue(712.0, "Second", "1001.0"); 
  defaultcategorydataset.addValue(1204.0, "Second", "1001.1"); 
 defaultcategorydataset.addValue(1820.0, "Second", "1001.2");  
/*/ 
//* 
 //添加數據方法2 
 //實驗隨機數來生成測試結果 
 Random random = new Random(12345); 
 
 //圖例1,40個數據 
 for(int i=0;i<40;i++){ 
  defaultcategorydataset.addValue(random.nextInt(100000), 
   "First",String.valueOf(1000+i) ); 
 } 
 //圖例2,40個數據 
 for (int i = 0; i < 40; i++) { 
  defaultcategorydataset.addValue(random.nextInt(100000), 
   "Second", String.valueOf(1000 + i)); 
 } 
//*/  
  
 return defaultcategorydataset; 
 } 
 
 private static JFreeChart createChart(CategoryDataset categorydataset) { 
 JFreeChart jfreechart = ChartFactory.createLineChart( 
  "jfreechart test",// 圖表標題 
  "X", // 主軸標簽(x軸) 
  "Y",// 范圍軸標簽(y軸) 
  categorydataset, // 數據集 
  PlotOrientation.VERTICAL,// 方向 
  false, // 是否包含圖例 
  true, // 提示信息是否顯示 
  false);// 是否使用urls 
  
 // 改變圖表的背景顏色 
 jfreechart.setBackgroundPaint(Color.white); 
  
 CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot(); 
 categoryplot.setBackgroundPaint(Color.lightGray); 
 categoryplot.setRangeGridlinePaint(Color.white); 
 categoryplot.setRangeGridlinesVisible(false); 
 
 //修改范圍軸。 我們將默認刻度值 (允許顯示小數) 改成只顯示整數的刻度值。 
 NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); 
 numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); 
  
 // 設置X軸上的Lable讓其45度傾斜 
 CategoryAxis domainAxis = categoryplot.getDomainAxis(); 
 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 設置X軸上的Lable讓其45度傾斜 
  domainAxis.setLowerMargin(0.0); // 設置距離圖片左端距離 
  domainAxis.setUpperMargin(0.0); // 設置距離圖片右端距離 
  
  
  
 LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot 
  .getRenderer(); 
 lineandshaperenderer.setShapesVisible(true); 
 lineandshaperenderer.setDrawOutlines(true); 
 lineandshaperenderer.setUseFillPaint(true); 
 lineandshaperenderer.setBaseFillPaint(Color.white); 
 lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3.0F)); 
 lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F)); 
 lineandshaperenderer.setSeriesShape(0, new Ellipse2D.Double(-5.0, -5.0, 
  10.0, 10.0)); 
 lineandshaperenderer.setItemMargin(0.4); //設置x軸每個值的間距(不起作用??) 
  
 // 顯示數據值 
 DecimalFormat decimalformat1 = new DecimalFormat("##.##");// 數據點顯示數據值的格式 
 lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator( 
  "{2}", decimalformat1));// 設置數據項標簽的生成器 
 lineandshaperenderer.setBaseItemLabelsVisible(true);// 基本項標簽顯示 
 lineandshaperenderer.setBaseShapesFilled(true);// 在數據點顯示實心的小圖標 
   
  
 return jfreechart; 
 } 
 
 public static JPanel createDemoPanel() { 
 JFreeChart jfreechart = createChart(createDataset()); 
 
 try { 
  ChartUtilities.saveChartAsJPEG( 
   new File("D:/LineChartDemo1.png"), //文件保存物理路徑包括路徑和文件名 
   // 1.0f, //圖片質量 ,0.0f~1.0f 
   jfreechart, //圖表對象 
   1024, //圖像寬度 ,這個將決定圖表的橫坐標值是否能完全顯示還是顯示省略號 
   768); 
 } catch (IOException e) { 
  // TODO Auto-generated catch block 
  e.printStackTrace(); 
 } //圖像高度 
   
 return new ChartPanel(jfreechart); 
 } 
 
 public static void main(String[] strings) { 
 LineChartDemo1 linechartdemo1 = new LineChartDemo1( 
  "JFreeChart - Line Chart Demo 1"); 
 linechartdemo1.pack(); 
 RefineryUtilities.centerFrameOnScreen(linechartdemo1); 
 linechartdemo1.setVisible(true); 
 } 
 
 /* synthetic */ 
 static Class class$(String string) { 
 Class var_class; 
 try { 
  var_class = Class.forName(string); 
 } catch (ClassNotFoundException classnotfoundexception) { 
  throw new NoClassDefFoundError(classnotfoundexception.getMessage()); 
 } 
 return var_class; 
 } 
}

運行結果:

使用jfreechart怎么畫折線圖

看完上述內容,你們對使用jfreechart怎么畫折線圖有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

左云县| 平邑县| 屯留县| 汪清县| 阜宁县| 山阴县| 大邑县| 双城市| 潞西市| 河北省| 蒙城县| 凯里市| 宜君县| 饶阳县| 塔河县| 唐河县| 阳江市| 都兰县| 喀喇| 凤山市| 冀州市| 长岭县| 永宁县| 芷江| 肃宁县| 房山区| 桓仁| 黎平县| 灵璧县| 太和县| 高尔夫| 清水县| 华容县| 萨迦县| 乌苏市| 炎陵县| 乌拉特中旗| 乃东县| 连江县| 昭通市| 邯郸县|