本文目錄一覽:
- 1、我在java中編寫了個柱狀圖,可運行了,我想讓柱狀圖在JSP頁面中顯示,請問有什麼方法么?謝謝。
- 2、java 柱狀圖系統配置與實例
- 3、java中使用jfreechart做柱狀圖,在jsp中顯示有問題,
- 4、怎樣用JAVA來實現在網頁中製作柱狀圖
- 5、java怎麼生成excel柱狀圖?
- 6、怎麼用java的相關類去畫一個柱狀圖
我在java中編寫了個柱狀圖,可運行了,我想讓柱狀圖在JSP頁面中顯示,請問有什麼方法么?謝謝。
用 Graphics 類
public void graphicsGeneration(int h1,int h2,int h3,int h4,int h5) {
final int X=10;
int imageWidth = 300;//圖片的寬度
int imageHeight = 300;//圖片的高度
int columnWidth=30;//柱的寬度
int columnHeight=200;//柱的最大高度
ChartGraphics chartGraphics = new ChartGraphics();
chartGraphics.image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
Graphics graphics = chartGraphics.image.getGraphics();
graphics.setColor(Color.white);
graphics.fillRect(0,0,imageWidth,imageHeight);
graphics.setColor(Color.red);
graphics.drawRect(X+1*columnWidth, columnHeight-h1, columnWidth, h1);
graphics.drawRect(X+2*columnWidth, columnHeight-h2, columnWidth, h2);
graphics.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3);
graphics.drawRect(X+4*columnWidth, columnHeight-h4, columnWidth, h4);
graphics.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5);
chartGraphics.createImage(“D:\\temp\\chart.jpg”);
}
}
希望能對你有幫助
java 柱狀圖系統配置與實例
ChartDirector除了一個英文件的幫助以外,也沒有再提供Java DOC形式的文檔,為了方便,寫以下一個例子說明使用ChartDirector生成柱狀圖的方法.jsp方式實質與JAVA方式沒有區別,這裡是我從JSP中取的代碼(JSP改起來方便,不過手動)
代碼如下:
%@ page language=”java” contentType=”text/Html; charset=UTF-8″
pageEncoding=”UTF-8″ import=”ChartDirector.*;”%
%
request.setCharacterEncoding(“UTF-8”);
//以兩個系列數據為例
double[] data = {185, 156, 179.5, 211, 123};
double[] data1 = {55, 76, 34.5, 88, 43};
//數據列名
String[] labels = {“一月”, “二月”, “三月”, “四月”, “五月”};
//生成圖片大小 250 x 250
XYChart c = new XYChart(550, 350);
//圖標題
c.addTitle(“第一個圖”,””,15);
//支持中文
c.setDefaultFonts(“SIMSUN.TTC”,”simhei.ttf”);
//圖表在圖片中的定位及區域大小
c.setPlotArea(30, 40, 400, 250);
//=========================
//加入單個數據
//BarLayer layer = c.addBarLayer(data,0xff3456,”我的測試”);
//=========================
//加入多個BAR數據(多個datasets)
BarLayer layer = c.addBarLayer2(Chart.Side, 3);
layer.addDataSet(data, 0xff8080, “我測試1”);
layer.addDataSet(data1, 0x008080, “你也測2”);
//3d化
layer.set3D();
//設置BAR邊框形式
layer.setBarShape(0);
//bar寬度
layer.setBarWidth(50);
//設置BAR邊框顏色
//layer.setBorderColor(0xff9999);
//圖例形式
layer.setLegend(1);
//每個BAR頂部加入數據顯示
layer.setAggregateLabelStyle();
//設置BAR底部的名稱顯示
TextBox t = c.xAxis().setLabels(labels);
//名稱文字大小
t.setFontSize(9);
//加圖例
//LegendBox legend = c.addLegend(260, 120,true);
//legend.addKey(“錢財”,0xff8080);
//圖例位置
c.addLegend(450, 120,true);
//output the chart
String chart1URL = c.makeSession(request, “chart1”);
//include tool tip for the chart
String imageMap1 = c.getHTMLImageMap(“#”, “”, “title='{xLabel}: US${value}K'”);
%!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
html
head
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″
title圖表測試/title
/head
body
h1中文/h1
hr color=”#000080″
br
img src=’%=response.encodeURL(“getchart.jsp?”+chart1URL)%’
usemap=”#map1″ border=”0″
map name=”map1″%=imageMap1%/map
/body
/html
資料引用:
java中使用jfreechart做柱狀圖,在jsp中顯示有問題,
jfreechart中顯示柱狀圖到jsp頁面:
package com.test.jfreechart;
import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
public class JFreeChartTest2 extends ApplicationFrame
{
public JFreeChartTest2(String title)
{
super(title);
this.setContentPane(createPanel()); //構造函數中自動創建Java的panel面板
}
public static CategoryDataset createDataset() //創建柱狀圖數據集
{
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.setValue(10,”a”,”管理人員”);
dataset.setValue(20,”b”,”市場人員”);
dataset.setValue(40,”c”,”開發人員”);
dataset.setValue(15,”d”,”其他人員”);
return dataset;
}
public static JFreeChart createChart(CategoryDataset dataset) //用數據集創建一個圖表
{
JFreeChart chart=ChartFactory.createBarChart(“hi”, “人員分布”,
“人員數量”, dataset, PlotOrientation.VERTICAL, true, true, false); //創建一個JFreeChart
chart.setTitle(new TextTitle(“某公司組織結構圖”,new Font(“宋體”,Font.BOLD+Font.ITALIC,20)));//可以重新設置標題,替換「hi」標題
CategoryPlot plot=(CategoryPlot)chart.getPlot();//獲得圖標中間部分,即plot
CategoryAxis categoryAxis=plot.getDomainAxis();//獲得橫坐標
categoryAxis.setLabelFont(new Font(“微軟雅黑”,Font.BOLD,12));//設置橫坐標字體
return chart;
}
public static JPanel createPanel()
{
JFreeChart chart =createChart(createDataset());
return new ChartPanel(chart); //將chart對象放入Panel面板中去,ChartPanel類已繼承Jpanel
}
public static void main(String[] args)
{
JFreeChartTest2 chart=new JFreeChartTest2(“某公司組織結構圖”);
chart.pack();//以合適的大小顯示
chart.setVisible(true);
}
}
運行結果:
怎樣用JAVA來實現在網頁中製作柱狀圖
JFreeChart是JAVA平台上的一個開放的圖表繪製類庫。它完全使用JAVA語言編寫,是為applications, applets, servlets 以及JSP等使用所設計。JFreeChart可生成餅圖(pie charts)、柱狀圖(bar charts)、散點圖(scatter plots)、時序圖(time series)、甘特圖(Gantt charts)等等多種圖表,並且可以產生PNG和JPEG格式的輸出,還可以與PDF和EXCEL關聯。
JFreeChart的主頁地址為:
在這裡可以找到最新版本的JFreeChart的相關信息,如說明文檔、下載連接以及示例圖表等。
JFreeChart目前是最好的java圖形解決方案,基本能夠解決目前的圖形方面的需求。
IBM文檔:
Javaeye社區:
java怎麼生成excel柱狀圖?
如果是柱狀圖之類的表示 是在 excel中生成的那麼你可以考慮做個excel模版引用數據利用excel內的機制自動生成想要的圖,而數據可以用java利用poi的相關類 往模版裡面寫數據。就知道這麼多 就給你說這麼多吧
怎麼用java的相關類去畫一個柱狀圖
可以使用java第三方JFreeChart的api:具體
import java.awt.Color;
import java.awt.GradientPaint;
import org.jfree.chart.ChartFactory;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
/**
* 柱狀圖測試
* @author xjh
*
*/
public class BarChartTest {
/**
* 得到2D柱狀圖的數據集合
*
* @return
*/
private CategoryDataset getDataset2D() {
String str1 = “First”;
String str2 = “Second”;
String str3 = “Third”;
String str4 = “Category 1”;
String str5 = “Category 2”;
String str6 = “Category 3”;
String str7 = “Category 4”;
String str8 = “Category 5”;
DefaultCategoryDataset localDefaultCategoryDataset = new DefaultCategoryDataset();
localDefaultCategoryDataset.addValue(1.0D, str1, str4);
localDefaultCategoryDataset.addValue(4.0D, str1, str5);
localDefaultCategoryDataset.addValue(3.0D, str1, str6);
localDefaultCategoryDataset.addValue(5.0D, str1, str7);
localDefaultCategoryDataset.addValue(5.0D, str1, str8);
localDefaultCategoryDataset.addValue(5.0D, str2, str4);
localDefaultCategoryDataset.addValue(7.0D, str2, str5);
localDefaultCategoryDataset.addValue(6.0D, str2, str6);
localDefaultCategoryDataset.addValue(8.0D, str2, str7);
localDefaultCategoryDataset.addValue(4.0D, str2, str8);
localDefaultCategoryDataset.addValue(4.0D, str3, str4);
localDefaultCategoryDataset.addValue(3.0D, str3, str5);
localDefaultCategoryDataset.addValue(2.0D, str3, str6);
localDefaultCategoryDataset.addValue(3.0D, str3, str7);
localDefaultCategoryDataset.addValue(6.0D, str3, str8);
return localDefaultCategoryDataset;
}
/**
* 創建2D柱狀圖
*
* @param paramCategoryDataset
* @return
*/
public JFreeChart createBarChart2D() {
//得到2D柱狀圖的數據集合
CategoryDataset paramCategoryDataset = getDataset2D();
//創建柱狀圖
JFreeChart localJFreeChart = ChartFactory.createBarChart(
“Bar Chart Demo”, “Category”, “Value”, paramCategoryDataset,
PlotOrientation.VERTICAL, true, true, false);
//設置柱狀圖屬性
localJFreeChart.setBackgroundPaint(Color.white);
//獲取柱狀圖的標註點集合
CategoryPlot localCategoryPlot = localJFreeChart.getCategoryPlot();
//設置標註點的背景色
localCategoryPlot.setBackgroundPaint(Color.lightGray);
//設置繪製區域的方格線的顏色
localCategoryPlot.setDomainGridlinePaint(Color.white);
//是方格線可見
localCategoryPlot.setDomainGridlinesVisible(true);
//設置方格線變動繪製顏色
localCategoryPlot.setRangeGridlinePaint(Color.white);
//得到數值坐標軸
NumberAxis localNumberAxis = (NumberAxis) localCategoryPlot
.getRangeAxis();
//設置坐標軸單元
localNumberAxis.setStandardTickUnits(NumberAxis
.createIntegerTickUnits());
//得到柱狀圖渲染器
BarRenderer localBarRenderer = (BarRenderer) localCategoryPlot
.getRenderer();
//如果超出繪製區域邊界將不可見
localBarRenderer.setDrawBarOutline(false);
//創建傾斜度對象
GradientPaint localGradientPaint1 = new GradientPaint(0.0F, 0.0F,
Color.blue, 0.0F, 0.0F, new Color(0, 0, 64));
GradientPaint localGradientPaint2 = new GradientPaint(0.0F, 0.0F,
Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
GradientPaint localGradientPaint3 = new GradientPaint(0.0F, 0.0F,
Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
//為渲染器設置傾斜度
localBarRenderer.setSeriesPaint(0, localGradientPaint1);
localBarRenderer.setSeriesPaint(1, localGradientPaint2);
localBarRenderer.setSeriesPaint(2, localGradientPaint3);
//旋轉坐標軸
CategoryAxis localCategoryAxis = localCategoryPlot.getDomainAxis();
localCategoryAxis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(0.5235987755982988D));
return localJFreeChart;
}
/**
* 創建3D柱狀圖
*
* @return
*/
public JFreeChart createBarChart3D() {
// 設置坐標點
double[][] arrayOfDouble = { { 10.0D, 4.0D, 15.0D, 14.0D },
{ -5.0D, -7.0D, 14.0D, -3.0D }, { 6.0D, 17.0D, -12.0D, 7.0D },
{ 7.0D, 15.0D, 11.0D, 0.0D }, { -8.0D, -6.0D, 10.0D, -9.0D },
{ 9.0D, 8.0D, 0.0D, 6.0D }, { -10.0D, 9.0D, 7.0D, 7.0D },
{ 11.0D, 13.0D, 9.0D, 9.0D }, { -3.0D, 7.0D, 11.0D, -10.0D } };
// 創建圖表的數據集合,第一個參數:橫坐標的文字說明;第二個參數:縱坐標的文字說明;第三個參數:坐標數組
CategoryDataset paramCategoryDataset = DatasetUtilities
.createCategoryDataset(“Series “, “Category “, arrayOfDouble);
// 創建3D圖表
JFreeChart localJFreeChart = ChartFactory.createBarChart3D(
“3D Bar Chart Demo”, “Category”, “Value”, paramCategoryDataset,
PlotOrientation.VERTICAL, true, true, false);
// 得到橫坐標點集合對象
CategoryPlot localCategoryPlot = localJFreeChart.getCategoryPlot();
// 設置方格可見
localCategoryPlot.setDomainGridlinesVisible(true);
// 得到坐標軸
CategoryAxis localCategoryAxis = localCategoryPlot.getDomainAxis();
// 設置標註點位置
localCategoryAxis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(0.3926990816987241D));
// 創建3D柱狀圖渲染對象
BarRenderer3D localBarRenderer3D = (BarRenderer3D) localCategoryPlot
.getRenderer();
// 設置超出邊界不可見
localBarRenderer3D.setDrawBarOutline(false);
// 返回圖表對象
return localJFreeChart;
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293218.html