java代碼柱形圖 java繪制圖形代碼

怎么用java做柱形圖!!!

首先要有jfreechart.jar和jcommon-1.0.12.jar兩個(gè)包然后在web.xml配置

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括淳安網(wǎng)站建設(shè)、淳安網(wǎng)站制作、淳安網(wǎng)頁制作以及淳安網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,淳安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到淳安省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

servlet

servlet-nameDisplayChart/servlet-name

servlet-classorg.jfree.chart.servlet.DisplayChart/servlet-class

/servlet

servlet-mapping

servlet-nameDisplayChart/servlet-name

url-pattern/DisplayChart/url-pattern

/servlet-mapping

最后是jsp代碼:

%@ page contentType="text/html;charset=GBK"%

%@ page import="org.jfree.chart.ChartFactory,

org.jfree.chart.JFreeChart,

org.jfree.chart.plot.PlotOrientation,

org.jfree.chart.servlet.ServletUtilities,

org.jfree.data.category.CategoryDataset,

org.jfree.data.general.DatasetUtilities"%

%

double[][] data = new double[][] {{1310}, {720}, {1130}, {440}};

String[] rowKeys = {"豬肉", "牛肉","雞肉", "魚肉"};

String[] columnKeys = {""};

CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

JFreeChart chart = ChartFactory.createBarChart3D("廣州肉類銷量統(tǒng)計(jì)圖", "肉類",

"銷量",

dataset,

PlotOrientation.VERTICAL,

true,

false,

false);

String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);

String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

%

img src="%= graphURL %"width=500 height=300 border=0 usemap="#%= filename %"

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

用jfreechart

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è)置是否生成熱點(diǎn)工具

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

*/

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

"學(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();

}

}

}

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

//一條線 有點(diǎn) 有數(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í)間曲線數(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ù)點(diǎn)

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

xylineandshaperenderer.setBaseShapesVisible(true);

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

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);

}

}

如何在JSP中實(shí)現(xiàn)柱形圖

使用在jsp中用jasperReport、iReport和jfreechart做一個(gè)帶有柱狀圖的簡(jiǎn)單報(bào)表

1.

首先請(qǐng)看這個(gè)帖子,上面有一個(gè)文檔《JasperReport與Ireport的配置與使用》。

作者寫了一份很詳細(xì)地用jasperReport和iReport生成一個(gè)簡(jiǎn)單報(bào)表的文檔,詳細(xì)、清楚,如果你是新手,請(qǐng)一定要看。只要試著一步步地做,做出一個(gè)不帶柱狀圖、餅狀圖的報(bào)表相當(dāng)容易。特別要注意它上面的傳遞參數(shù)$P{},因?yàn)槲覀冊(cè)谟玫剿?/p>

但是它上面有一個(gè)小小的錯(cuò)誤,是在用JSP生成報(bào)表的那一段代碼。請(qǐng)將第一行的那句:去掉。不然總是提示下載一個(gè)JSP文件,而不是我們希望生成的報(bào)表PDF。

如果你不需要那些柱圖餅圖之類,就不需要往下看了。那份文檔已經(jīng)很詳細(xì)了。

(在這里要特別感謝作者,這份文檔給了我莫大的幫助。我也是我想寫這份總結(jié)的原因之一)

2.

下載

1

jasperReport

2

iReport

0.3.0

或0.3.1

建議使用0.3.0,因?yàn)?.3.1有一些小BUG。如不生成.jasper文檔(其實(shí)生成的是一個(gè)沒有后綴名的文檔,chartTool也有一些問題。

3

jfreechart

除了jar文件,它們的API文檔也很有用。特別是jasperReport自帶的DEMO。

@

生成柱狀圖

我們假設(shè)你已經(jīng)按《JasperReport與Ireport的配置與使用》的做法生成了一個(gè)可以正確運(yùn)行的報(bào)表,那么我們就可以繼續(xù)了。如果你沒有,請(qǐng)?jiān)僮屑?xì)看它,然后再往下看。

我知道的生成柱狀圖有三種方法,我比較喜歡第三種,但是前兩種也應(yīng)該了解一下。

1

使用ChartTool。

iReport的工具欄上有一個(gè)工具,叫ChartTool。我們點(diǎn)一下它,然后在報(bào)表上畫一個(gè)報(bào)表出來,這時(shí)就可以看到一個(gè)柱狀的報(bào)表了。然后用執(zhí)行一下,看是不是已經(jīng)生成了柱狀圖了?只可惜這個(gè)圖我們沒有辦法改參數(shù),滿足不了我們的需要。(也許有辦法,但我不會(huì),繼續(xù))

2

使用ChartScriptlet

去jasperReport自帶的DEMO中,找一個(gè)chart的例子,它使用的就是jfreechart。可以看看它。它的原理是:

在報(bào)表上插入一個(gè)圖片,賦給它一個(gè)變量chartImage。該報(bào)表調(diào)用了一個(gè)類ChartScriptlet,它可以動(dòng)態(tài)生成一個(gè)柱狀圖的圖片對(duì)象,賦給chartImage。這樣報(bào)表看起來,就會(huì)有一個(gè)可以按需要設(shè)置的柱圖了。

這樣做:在報(bào)表上插入一個(gè)圖片,再設(shè)置一個(gè)變量chartImage,為java.awt.Image類型。在圖片的Image

Expresion處設(shè)置$V{chartImage}。打開View-Report

Properties-Scriptlet。選擇Use

this

scriptlet

class,設(shè)置為ChartScriptlet。然后我們把jasperReport中自帶的Demo中的chart下的ChartScriptlet.class拷到你報(bào)表所在的目錄下。運(yùn)行一下看看,是否有一個(gè)餅圖?

我們?cè)俚絡(luò)asperReport的DEMO下的chart目錄下,看一下ChartScriptlet.java文件。你可以修改它,可以生成自己所需要的柱圖、餅圖、帶圖,其它圖等等。如果要從數(shù)據(jù)庫中讀取數(shù)據(jù),可以在這個(gè)文件中讀取。

3

自已寫一個(gè)類,生成一個(gè)柱圖對(duì)象,把它作為一個(gè)參數(shù)傳遞給報(bào)表,再生成一個(gè)PDF

第二種方法那個(gè)Scriptlet類,繼承自另一個(gè)類,你只需要重載其中的一個(gè)方法afterReportInit()就行了,其它的都不用管。如果是自己的類,你可以把那個(gè)Scriptlet中的那些代碼拷過來,但是要有一個(gè)方法返回一個(gè)Image對(duì)象,它就是你所生成好的圖片對(duì)象。你也可以向它傳遞參數(shù),這樣對(duì)數(shù)據(jù)庫的操作就可以在別的地方做了。然后把它個(gè)Image對(duì)象作為參數(shù)傳遞給報(bào)表,就行了.

怎樣用JAVA來實(shí)現(xiàn)在網(wǎng)頁中制作柱狀圖

JFreeChart是JAVA平臺(tái)上的一個(gè)開放的圖表繪制類庫。它完全使用JAVA語言編寫,是為applications, applets, servlets 以及JSP等使用所設(shè)計(jì)。JFreeChart可生成餅圖(pie charts)、柱狀圖(bar charts)、散點(diǎn)圖(scatter plots)、時(shí)序圖(time series)、甘特圖(Gantt charts)等等多種圖表,并且可以產(chǎn)生PNG和JPEG格式的輸出,還可以與PDF和EXCEL關(guān)聯(lián)。

JFreeChart的主頁地址為:

在這里可以找到最新版本的JFreeChart的相關(guān)信息,如說明文檔、下載連接以及示例圖表等。

JFreeChart目前是最好的java圖形解決方案,基本能夠解決目前的圖形方面的需求。

IBM文檔:

Javaeye社區(qū):

文章標(biāo)題:java代碼柱形圖 java繪制圖形代碼
當(dāng)前地址:http://muchs.cn/article40/dohioho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、動(dòng)態(tài)網(wǎng)站定制開發(fā)、網(wǎng)站營銷自適應(yīng)網(wǎng)站、面包屑導(dǎo)航

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)