多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 使用jfreechart生成柱狀圖、折線圖、和餅狀圖

使用jfreechart生成柱狀圖、折線圖、和餅狀圖

來源:程序員人生   發(fā)布時(shí)間:2014-12-15 09:17:37 閱讀次數(shù):3126次

JFreeChart是JAVA平臺(tái)上的1個(gè)開放的圖表繪制類庫。它完全使用JAVA語言編寫,是為applications, applets, servlets 和JSP等使用所設(shè)計(jì)。下面我就詳細(xì)介紹如何使用jfreechart生成柱狀圖、折線圖、和餅狀圖。

步驟:

①、導(dǎo)入其相應(yīng)的jcommon⑴.0.16.jar和jfreechart⑴.0.13.jar文件(可點(diǎn)擊下載)

②、下面就能夠?qū)憣?shí)現(xiàn)各種圖形的代碼了

A、生成柱狀圖:

<span style="font-size:18px;">package com.whp.test; import java.awt.Font; import java.io.File; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis3D; import org.jfree.chart.axis.NumberAxis3D; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.data.category.DefaultCategoryDataset; public class jfreeChart { public static void main(String[] args) { // TODO Auto-generated method stub DefaultCategoryDataset dataset=new DefaultCategoryDataset(); //添加數(shù)據(jù) dataset.addValue(98, "數(shù)學(xué)", "張3"); dataset.addValue(87, "語文", "張3"); dataset.addValue(68, "數(shù)學(xué)", "李4"); dataset.addValue(89, "語文", "李4"); dataset.addValue(56, "數(shù)學(xué)", "王5"); dataset.addValue(96, "語文", "王5"); JFreeChart chart=ChartFactory.createBarChart3D( "成績統(tǒng)計(jì)表", "學(xué)生姓名",//X軸的標(biāo)簽 "分?jǐn)?shù)",//Y軸的標(biāo)簽 dataset, //圖標(biāo)顯示的數(shù)據(jù)集合 PlotOrientation.VERTICAL, //圖象的顯示情勢(shì)(水平或垂直) true,//是不是顯示子標(biāo)題 true,//是不是生成提示的標(biāo)簽 true); //是不是生成URL鏈接 //處理圖形上的亂碼 //處理主標(biāo)題的亂碼 chart.getTitle().setFont(new Font("宋體",Font.BOLD,18)); //處理子標(biāo)題亂碼 chart.getLegend().setItemFont(new Font("宋體",Font.BOLD,15)); //獲得圖表區(qū)域?qū)ο? CategoryPlot categoryPlot = (CategoryPlot)chart.getPlot(); //獲得X軸的對(duì)象 CategoryAxis3D categoryAxis3D = (CategoryAxis3D)categoryPlot.getDomainAxis(); //獲得Y軸的對(duì)象 NumberAxis3D numberAxis3D = (NumberAxis3D)categoryPlot.getRangeAxis(); //處理X軸上的亂碼 categoryAxis3D.setTickLabelFont(new Font("宋體",Font.BOLD,15)); //處理X軸外的亂碼 categoryAxis3D.setLabelFont(new Font("宋體",Font.BOLD,15)); //處理Y軸上的亂碼 numberAxis3D.setTickLabelFont(new Font("宋體",Font.BOLD,15)); //處理Y軸外的亂碼 numberAxis3D.setLabelFont(new Font("宋體",Font.BOLD,15)); //處理Y軸上顯示的刻度,以10作為1格 numberAxis3D.setAutoTickUnitSelection(false); NumberTickUnit unit = new NumberTickUnit(10); numberAxis3D.setTickUnit(unit); //獲得繪圖區(qū)域?qū)ο? BarRenderer3D barRenderer3D = (BarRenderer3D)categoryPlot.getRenderer(); //設(shè)置柱形圖的寬度 barRenderer3D.setMaximumBarWidth(0.07); //在圖形上顯示數(shù)字 barRenderer3D.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); barRenderer3D.setBaseItemLabelsVisible(true); barRenderer3D.setBaseItemLabelFont(new Font("宋體",Font.BOLD,15)); //在D盤目錄下生成圖片 File file = new File("chart.jpeg"); try { ChartUtilities.saveChartAsJPEG(file, chart, 800, 600); } catch (IOException e) { e.printStackTrace(); } //使用ChartFrame對(duì)象顯示圖象 ChartFrame frame = new ChartFrame("xyz",chart); frame.setVisible(true); frame.pack(); } } </span>
結(jié)果:



B、生成折線圖

package com.whp.test; import java.awt.Font; import java.awt.Rectangle; import java.io.File; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryAxis3D; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.NumberAxis3D; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class jfreeChart1 { public static void main(String[] args) { // TODO Auto-generated method stub DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // 添加數(shù)據(jù) dataset.addValue(98, "數(shù)學(xué)", "張3"); dataset.addValue(68, "數(shù)學(xué)", "李4"); dataset.addValue(56, "數(shù)學(xué)", "王5"); JFreeChart chart = ChartFactory.createLineChart("用戶統(tǒng)計(jì)報(bào)表(所屬單位)", // 主標(biāo)題的名稱 "所屬單位名稱",// X軸的標(biāo)簽 "數(shù)量",// Y軸的標(biāo)簽 dataset, // 圖標(biāo)顯示的數(shù)據(jù)集合 PlotOrientation.VERTICAL, // 圖象的顯示情勢(shì)(水平或垂直) true,// 是不是顯示子標(biāo)題 true,// 是不是生成提示的標(biāo)簽 true); // 是不是生成URL鏈接 // 處理圖形上的亂碼 // 處理主標(biāo)題的亂碼 chart.getTitle().setFont(new Font("宋體", Font.BOLD, 18)); // 處理子標(biāo)題亂碼 chart.getLegend().setItemFont(new Font("宋體", Font.BOLD, 15)); // 獲得圖表區(qū)域?qū)ο? CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot(); // 獲得X軸的對(duì)象 CategoryAxis categoryAxis = (CategoryAxis) categoryPlot.getDomainAxis(); // 獲得Y軸的對(duì)象 NumberAxis numberAxis = (NumberAxis) categoryPlot.getRangeAxis(); // 處理X軸上的亂碼 categoryAxis.setTickLabelFont(new Font("宋體", Font.BOLD, 15)); // 處理X軸外的亂碼 categoryAxis.setLabelFont(new Font("宋體", Font.BOLD, 15)); // 處理Y軸上的亂碼 numberAxis.setTickLabelFont(new Font("宋體", Font.BOLD, 15)); // 處理Y軸外的亂碼 numberAxis.setLabelFont(new Font("宋體", Font.BOLD, 15)); // 處理Y軸上顯示的刻度,以10作為1格 numberAxis.setAutoTickUnitSelection(false); NumberTickUnit unit = new NumberTickUnit(10); numberAxis.setTickUnit(unit); // 獲得繪圖區(qū)域?qū)ο? LineAndShapeRenderer lineAndShapeRenderer = (LineAndShapeRenderer) categoryPlot .getRenderer(); // 在圖形上顯示數(shù)字 lineAndShapeRenderer .setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); lineAndShapeRenderer.setBaseItemLabelsVisible(true); lineAndShapeRenderer .setBaseItemLabelFont(new Font("宋體", Font.BOLD, 15)); // 在圖形上添加轉(zhuǎn)折點(diǎn)(使用小矩形顯示) Rectangle shape = new Rectangle(10, 10); lineAndShapeRenderer.setSeriesShape(0, shape); lineAndShapeRenderer.setSeriesShapesVisible(0, true); //在D盤目錄下生成圖片 File file = new File("chart1.jpg"); try { ChartUtilities.saveChartAsJPEG(file, chart, 800, 600); } catch (IOException e) { e.printStackTrace(); } // 使用ChartFrame對(duì)象顯示圖象 ChartFrame frame = new ChartFrame("xyz", chart); frame.setVisible(true); frame.pack(); } }

結(jié)果:


C、生成餅圖:

package com.whp.test; import java.awt.Font; import java.awt.Rectangle; import java.io.File; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryAxis3D; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.NumberAxis3D; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; public class jfreeChart3 { public static void main(String[] args) { // TODO Auto-generated method stub DefaultPieDataset dataset = new DefaultPieDataset(); //添加數(shù)據(jù) dataset.setValue("張3",40); dataset.setValue("李4",32); dataset.setValue("王5",28); JFreeChart chart = ChartFactory.createPieChart3D("比重統(tǒng)計(jì)報(bào)表(所屬單位)", //主標(biāo)題的名稱 dataset, //圖標(biāo)顯示的數(shù)據(jù)集合 true,//是不是顯示子標(biāo)題 true,//是不是生成提示的標(biāo)簽 true); //是不是生成URL鏈接 //處理圖形上的亂碼 //處理主標(biāo)題的亂碼 chart.getTitle().setFont(new Font("宋體",Font.BOLD,18)); //處理子標(biāo)題亂碼 chart.getLegend().setItemFont(new Font("宋體",Font.BOLD,15)); //獲得圖表區(qū)域?qū)ο? PiePlot3D categoryPlot = (PiePlot3D)chart.getPlot(); //處理圖象上的亂碼 categoryPlot.setLabelFont(new Font("宋體",Font.BOLD,15)); //設(shè)置圖形的生成格式為(上海 2 (10%)) String format = "{0} {1} ({2})"; categoryPlot.setLabelGenerator(new StandardPieSectionLabelGenerator(format)); //在D盤目錄下生成圖片 File file = new File("chart2.jpg"); try { ChartUtilities.saveChartAsJPEG(file, chart, 800, 600); } catch (IOException e) { e.printStackTrace(); } //使用ChartFrame對(duì)象顯示圖象 ChartFrame frame = new ChartFrame("xyz",chart); frame.setVisible(true); frame.pack(); } }

結(jié)果:





生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: xxx性欧美 | 爱爱免费网站 | 猛性xxxxx | 夜夜伊人| 日本国产一区在线观看 | 亚洲精品二区 | 久久毛片视频 | 国产18在线 | 中文字幕亚洲色图 | 一区二区三区四区五区六区 | 最近中文字幕无 | 国产精品久久现线拍久青草 | 久久综合久久精品 | 视频免费视频观看网站 | 大陆老太交xxxxxhd在线 | 激情区小说区偷拍区图片区 | 免费在线观看一级毛片 | 免费视频精品一区二区三区 | 亚洲综合二区 | 小说区图片区亚洲 | 国产片欧美片亚洲片久久综合 | 日韩国产欧美成人一区二区影院 | 国产精品久久久久久搜索 | 久久一区二区精品综合 | 欧美成人h版在线观看 | 免费不卡视频 | ady久久| 五月伊人网 | 国产在线精品一区二区高清不卡 | 精品福利| 在线91色 | 亚洲国产精品久久久久久网站 | 国产精品免费福利 | 亚洲视频在线观看免费视频 | 色琪琪永久远网址 | 日韩免费看片 | 欧美伊人网 | 国产精品免费播放 | 亚洲一区二区三区国产精品 | 亚洲国产一区二区三区在线观看 | 国产欧美日本在线 |