java代碼生成圖表,java后端生成圖表

eclipse中用JAVA代碼怎么畫柱形圖表

用jfreechart

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、革吉網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為革吉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

jfreechart繪制柱狀圖

import java.io.File;

import java.io.IOException;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.data.category.DefaultCategoryDataset;

/*

* 繪制柱狀圖

*你亮哥

* */

public class BarChart3DDemo

{

public static void main(String[] args)

{

try

{

//設(shè)置主題

ChartFactory.setChartTheme(Theme.getTheme());

//構(gòu)造數(shù)據(jù)

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "JAVA","1");

dataset.addValue(200, "js","1");

dataset.addValue(200, "C++", "2");

dataset.addValue(300, "C", "3");

dataset.addValue(400, "HTML", "4");

dataset.addValue(400, "CSS", "5");

/*

* public static JFreeChart createBarChart3D(

* java.lang.String title, 設(shè)置圖表的標(biāo)題

* java.lang.String categoryAxisLabel, 設(shè)置分類軸的標(biāo)示

* java.lang.String valueAxisLabel, 設(shè)置值軸的標(biāo)示

* CategoryDataset dataset, 設(shè)置數(shù)據(jù)

* PlotOrientation orientation, 設(shè)置圖表的方向

* boolean legend, 設(shè)置是否顯示圖例

* boolean tooltips,設(shè)置是否生成熱點工具

* boolean urls) 設(shè)置是否顯示url

*/

JFreeChart chart = ChartFactory.createBarChart3D("編程語言統(tǒng)計", "語言",

"學(xué)習(xí)人數(shù)", dataset, PlotOrientation.VERTICAL, true, false,

false);

//保存圖表

ChartUtilities.saveChartAsPNG(new File("E:/chart/BarChart3D.png"), chart, 800, 500);

System.out.println("繪圖完成");

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

===================================================================================

//一條線 有點 有數(shù)

package Test;

import java.awt.Color;

import java.awt.Font;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartFrame;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.AxisSpace;

import org.jfree.chart.labels.ItemLabelAnchor;

import org.jfree.chart.labels.ItemLabelPosition;

import org.jfree.chart.labels.StandardXYItemLabelGenerator;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYItemRenderer;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.time.Month;

import org.jfree.data.time.TimeSeries;

import org.jfree.data.time.TimeSeriesCollection;

import org.jfree.ui.RectangleInsets;

import org.jfree.ui.TextAnchor;

public class try123 {

public static void main(String[] args){

//首先構(gòu)造數(shù)據(jù)

TimeSeries timeSeries = new TimeSeries("BMI", Month.class);

// 時間曲線數(shù)據(jù)集合

TimeSeriesCollection lineDataset = new TimeSeriesCollection();

// 構(gòu)造數(shù)據(jù)集合

timeSeries.add(new Month(1, 2009), 45);

timeSeries.add(new Month(2, 2009), 46);

timeSeries.add(new Month(3, 2009), 1);

timeSeries.add(new Month(4, 2009), 500);

timeSeries.add(new Month(5, 2009), 43);

timeSeries.add(new Month(6, 2009), 324);

timeSeries.add(new Month(7, 2009), 632);

timeSeries.add(new Month(8, 2009), 34);

timeSeries.add(new Month(9, 2009), 12);

timeSeries.add(new Month(10, 2009), 543);

timeSeries.add(new Month(11, 2009), 32);

timeSeries.add(new Month(12, 2009), 225);

lineDataset.addSeries(timeSeries);

JFreeChart chart = ChartFactory.createTimeSeriesChart("", "date", "bmi", lineDataset, true, true, true);

//增加標(biāo)題

chart.setTitle(new TextTitle("XXXBMI指數(shù)", new Font("隸書", Font.ITALIC, 15)));

chart.setAntiAlias(true);

XYPlot plot = (XYPlot) chart.getPlot();

plot.setAxisOffset(new RectangleInsets(10,10,10,10));//圖片區(qū)與坐標(biāo)軸的距離

plot.setOutlinePaint(Color.PINK);

plot.setInsets(new RectangleInsets(15,15,15,15));//坐標(biāo)軸與最外延的距離

// plot.setOrientation(PlotOrientation.HORIZONTAL);//圖形的方向,包括坐標(biāo)軸。

AxisSpace as = new AxisSpace();

as.setLeft(25);

as.setRight(25);

plot.setFixedRangeAxisSpace(as);

chart.setPadding(new RectangleInsets(5,5,5,5));

chart.setNotify(true);

// 設(shè)置曲線是否顯示數(shù)據(jù)點

XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();

xylineandshaperenderer.setBaseShapesVisible(true);

// 設(shè)置曲線顯示各數(shù)據(jù)點的值

XYItemRenderer xyitem = plot.getRenderer();

xyitem.setBaseItemLabelsVisible(true);

xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_LEFT));

xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());

xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 14));

plot.setRenderer(xyitem);

//顯示

ChartFrame frame = new ChartFrame("try1", chart);

frame.pack();

frame.setVisible(true);

}

}

如何從JAVA代碼生成UML類圖

推薦使用ModelGoon!

*ModelGoon是什么?

它是一個Eclipse插件,用于基于UML圖的模型設(shè)計,以及逆向工程(即從已有源代碼生成類圖等,以作為代碼分析或者文檔使用)。

*適用條件

ModelGoon目前最新的版本是3.0.0,適用于Eclipse3.4+,包括最新的Eclipse 3.6版本

*如何安裝

推薦在線安裝,site地址是

需要注意的是,有時必須使用代理服務(wù)器才能連接成功。

也可以離線安裝,下載包的地址是

下載完該jar之后,直接拷貝到Eclipse安裝目錄下的dropins目錄下,重啟Eclipse即可

*如何使用

安裝成功后,file=new=other菜單里面會多出一項ModelGoon Diagrams,在自己已有的java工程中新建一個class diagram,用以生成類圖。創(chuàng)建完成后你會發(fā)現(xiàn)生成了一個.mgc后綴的文件,現(xiàn)在你可以用這個文件創(chuàng)建自己的類圖了。用法相當(dāng)直接,你可以把若干個java類拖拽進(jìn)這個文件視圖中,UML類圖自然被生成,以及各個類之間的關(guān)系。

*參考資料

需要注意的是,有時必須使用代理服務(wù)器才能連接成功。

*為什么選擇ModelGoon而不是其他的插件

其他的UML插件也能完成類似的功能,但是在安裝使用的過程中會碰到種種問題。

常有人推薦EclipseUML這個插件,但是目前這個項目的主頁無法打開,似乎已停止維護(hù);

還有Slime UML據(jù)說也不錯,但是找不到下載源;

此外還有AgileJ口碑也不錯,可惜是付費(fèi)的,沒有免費(fèi)版;

至于papyrusuml,只是單向的,做模型設(shè)計、繪制UML圖時使用,而并不支持逆向工程;

java怎么做報表功能?

使用 JFreeChart 生成各種樣式的圖表

限于篇幅的問題我們在這里只實現(xiàn)兩種常用的圖表,其他類型圖表讀者可以觸類旁通。我們先給出柱狀圖的實現(xiàn),餅圖的實現(xiàn)再來跟柱狀圖進(jìn)行比較。

1 柱狀圖

package lius.chart.demo;

import java.io.*;

import org.jfree.data.*;

import org.jfree.chart.*;

import org.jfree.chart.plot.*;

/**

* 該類用于演示最簡單的柱狀圖生成

* @author Winter Lau

*/

public class BarChartDemo {

public static void main(String[] args) throws IOException{

CategoryDataset dataset = getDataSet2();

JFreeChart chart = ChartFactory.createBarChart3D(

"水果產(chǎn)量圖", // 圖表標(biāo)題

"水果", // 目錄軸的顯示標(biāo)簽

"產(chǎn)量", // 數(shù)值軸的顯示標(biāo)簽

dataset, // 數(shù)據(jù)集

PlotOrientation.VERTICAL, // 圖表方向:水平、垂直

true, // 是否顯示圖例(對于簡單的柱狀圖必須是 false)

false, // 是否生成工具

false // 是否生成 URL 鏈接

);

FileOutputStream fos_jpg = null;

try {

fos_jpg = new FileOutputStream("D:\\fruit.jpg");

ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);

} finally {

try {

fos_jpg.close();

} catch (Exception e) {}

}

}

/**

* 獲取一個演示用的簡單數(shù)據(jù)集對象

* @return

*/

private static CategoryDataset getDataSet() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, null, "蘋果");

dataset.addValue(200, null, "梨子");

dataset.addValue(300, null, "葡萄");

dataset.addValue(400, null, "香蕉");

dataset.addValue(500, null, "荔枝");

return dataset;

}

/**

* 獲取一個演示用的組合數(shù)據(jù)集對象

* @return

*/

private static CategoryDataset getDataSet2() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "北京", "蘋果");

dataset.addValue(100, "上海", "蘋果");

dataset.addValue(100, "廣州", "蘋果");

dataset.addValue(200, "北京", "梨子");

dataset.addValue(200, "上海", "梨子");

dataset.addValue(200, "廣州", "梨子");

dataset.addValue(300, "北京", "葡萄");

dataset.addValue(300, "上海", "葡萄");

dataset.addValue(300, "廣州", "葡萄");

dataset.addValue(400, "北京", "香蕉");

dataset.addValue(400, "上海", "香蕉");

dataset.addValue(400, "廣州", "香蕉");

dataset.addValue(500, "北京", "荔枝");

dataset.addValue(500, "上海", "荔枝");

dataset.addValue(500, "廣州", "荔枝");

return dataset;

}

}

2 餅圖

package lius.chart.demo;

import java.io.*;

import org.jfree.data.*;

import org.jfree.chart.*;

/**

* 用于演示餅圖的生成

* @author Winter Lau

*/

public class PieChartDemo {

public static void main(String[] args) throws IOException{

DefaultPieDataset data = getDataSet();

JFreeChart chart = ChartFactory.createPie3DChart("水果產(chǎn)量圖", // 圖表標(biāo)題

data,

true, // 是否顯示圖例

false,

false

);

// 寫圖表對象到文件,參照柱狀圖生成源碼

}

/**

* 獲取一個演示用的簡單數(shù)據(jù)集對象

* @return

*/

private static DefaultPieDataset getDataSet() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("蘋果",100);

dataset.setValue("梨子",200);

dataset.setValue("葡萄",300);

dataset.setValue("香蕉",400);

dataset.setValue("荔枝",500);

return dataset;

}

}

3將生成的圖表移到瀏覽器上

package lius.chart.demo;

import java.io.IOException;

import javax.servlet.*;

import javax.servlet.http.HttpServlet;

import org.jfree.data.*;

import org.jfree.chart.*;

/**

* 演示通過 servlet 直接輸出圖表

* @author Winter Lau

*/

public class ChartDemoServlet extends HttpServlet {

public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException

{

res.setContentType("image/jpeg");

DefaultPieDataset data = getDataSet();

JFreeChart chart = ChartFactory.createPie3DChart("水果產(chǎn)量圖",

data,

true,

false,

false

);

ChartUtilities.writeChartAsJPEG(res.getOutputStream(),

100,chart,400,300,null);

}

/**

* 獲取一個演示用的簡單數(shù)據(jù)集對象

* @return

*/

private static DefaultPieDataset getDataSet() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("蘋果",100);

dataset.setValue("梨子",200);

dataset.setValue("葡萄",300);

dataset.setValue("香蕉",400);

dataset.setValue("荔枝",500);

return dataset;

}

}

4高級主題

很多情況我們不僅僅要求可以在瀏覽器上顯示一個圖表,我們更需要客戶可以直接在圖表上做一下交互的操作,例如獲取信息提示,點擊圖表某個部分進(jìn)行更詳細(xì)信息的展示等等。例如前面生成的簡單柱狀圖,用戶需要在看到柱狀圖后點擊某種水果例如是蘋果即可看到各個地區(qū)蘋果產(chǎn)量的情況。為此就要求該圖形具有交互操作的功能。在 HTML 中為了讓一個圖像具有可交互的功能就必須給該圖像定義一個 Map 對象。下表節(jié)選一段具有該功能的 HTML 代碼:

MAP NAME="chartMap"

AREA SHAPE="RECT" COORDS="81,15,126,254" href="?series=0category=100"

title="100 = 7,048"

onclick="javascript:clickChart('100');return false;"

AREA SHAPE="RECT" COORDS="143,27,188,255" href="?series=0category=200"

title="200 = 6,721"

onclick="javascript: clickChart ('200');return false;"

AREA SHAPE="RECT" COORDS="205,54,250,255" href="?series=0category=300"

title="300 = 5,929"

onclick="javascript: clickChart ('300');return false;"

AREA SHAPE="RECT" COORDS="267,85,312,255" href="?series=0category=400"

title="400 = 5,005"

onclick="javascript: clickChart ('400');return false;"

AREA SHAPE="RECT" COORDS="329,17,374,255" href="?series=0category=Diet"

title="Diet = 7,017" onclick="javascript:

clickChart ('Diet');return false;"

/MAP

由此就產(chǎn)生了一個問題:如果根據(jù)一個圖像來生成對應(yīng)的 MAP 對象。我們回頭看看剛才的代碼,在創(chuàng)建一個圖表對象時候有兩個參數(shù),我們舉柱狀圖的例子來講這兩個參數(shù)就是 ChartFactory. createBarChart3D 方法中的最后兩個參數(shù),這兩個參數(shù)的類型都是布爾值。這兩個參數(shù)意思分別是:是否創(chuàng)建工具提示 (tooltip) 以及是否生成 URL。這兩個參數(shù)分別對應(yīng)著 MAP 中一個 AREA 的 title 屬性以及 href 屬性。

可是我想知道的是怎么來產(chǎn)生這個 MAP 啊!哈哈,不要著急,JFreeChart 已經(jīng)幫我們做好生成 MAP 對象的功能。為了生成 MAP 對象就要引入另外一個對象:ChartRenderingInfo。因為 JFreeChart 沒有直接的方法利用一個圖表對象直接生成 MAP 數(shù)據(jù),它需要一個中間對象來過渡,這個對象就是 ChartRenderingInfo。

網(wǎng)頁題目:java代碼生成圖表,java后端生成圖表
文章地址:http://m.kartarina.com/article18/hscogp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷網(wǎng)站設(shè)計網(wǎng)站維護(hù)定制開發(fā)建站公司虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
主站蜘蛛池模板: 中文字幕无码中文字幕有码| 熟妇无码乱子成人精品| 国产成人无码一区二区三区| 免费无码又爽又刺激网站直播| 亚洲人成影院在线无码观看| 少妇精品无码一区二区三区| 国产在线无码精品无码| 中文字幕乱偷无码AV先锋| 亚洲精品无码中文久久字幕| 亚洲AV无码精品色午夜在线观看| 无码人妻H动漫中文字幕| 亚洲a∨无码男人的天堂| 久久久人妻精品无码一区| 人妻精品久久无码区洗澡| 亚洲日韩乱码中文无码蜜桃| 国产AV无码专区亚洲AWWW| 无码人妻丰满熟妇区毛片18| 一区二区无码免费视频网站| 亚洲AV综合色区无码一区爱AV| 一本大道无码日韩精品影视| 18禁无遮挡无码网站免费| 一本天堂ⅴ无码亚洲道久久| 无码中文字幕av免费放dvd| 国产成人无码区免费内射一片色欲| 加勒比无码一区二区三区| 无码任你躁久久久久久老妇App| 国产乱人伦Av在线无码| 亚洲级αV无码毛片久久精品| 亚洲精品国产日韩无码AV永久免费网 | JAVA性无码HD中文| 少妇人妻偷人精品无码视频新浪| 中文字幕无码第1页| 国产午夜片无码区在线播放| 亚洲日韩精品一区二区三区无码| 亚洲国产精品无码久久九九| V一区无码内射国产| 成人免费无码H在线观看不卡| 中文有无人妻vs无码人妻激烈 | 在线播放无码后入内射少妇| 精品人体无码一区二区三区| 国产真人无码作爱免费视频|