java柱狀圖,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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:13
下一篇 2024-12-26 13:13

相關推薦

  • Python編程求長方形的面積

    求長方形面積是很常見的計算問題。在Python中使用簡單的數學運算即可完成,本文將從多個方面詳細闡述Python編程求長方形面積的方法。 一、計算長方形面積的數學公式 長方形是由兩…

    編程 2025-04-29
  • Python編程:如何定義一個計算三角形面積的函數

    計算三角形面積是幾何學中的一個基礎問題。在Python編程中,我們可以通過定義一個函數來計算任意三角形的面積。本文將從以下幾個方面對Python定義一個計算三角形面積的函數進行闡述…

    編程 2025-04-28
  • Python三角形周長及面積

    在Python編程中,計算三角形的周長及面積是基礎的操作之一。在此文章中,將詳細闡述如何通過Python編程計算三角形的周長及面積。 一、三角形概述 三角形是由三條線段相交而成的平…

    編程 2025-04-28
  • 使用Python查找列表中的最大元素

    在Python中,有時候我們需要在一個列表中查找最大的元素。本文將詳細討論如何使用Python查找列表中的最大元素。 1、使用max()函數查找列表中最大元素 Python自帶的m…

    編程 2025-04-27
  • 矩形重疊圖

    矩形重疊圖是一個常見的圖形問題,它需要我們找到重疊區域或者判斷兩個矩形是否重疊。在本文中,我們將從多個方面介紹如何處理矩形重疊圖,包括演算法思路、代碼實現和性能優化等。 一、重疊矩形…

    編程 2025-04-27
  • 最大匹配演算法Python代碼

    本文主要介紹最大匹配演算法Python代碼,該演算法是一種基本的中文分詞方法,適用於處理中文文本中的詞語分割問題。 一、演算法原理 最大匹配演算法是一種基於詞典的中文分詞演算法,其本質是一個…

    編程 2025-04-27
  • ECharts柱狀圖間隔完全指南

    ECharts是一個非常強大的JavaScript圖表庫,它提供了豐富的可定製化配置選項以及良好的兼容性。其中,柱狀圖是一種非常常見的圖表類型,同時也是ECharts中功能齊全的圖…

    編程 2025-04-24
  • echarts橫向柱狀圖

    一、概覽 ECharts是百度前端開發部開發的一個開源可視化庫,它可以幫助開發者輕鬆的實現各種數據可視化。 橫向柱狀圖是ECharts中一個非常常見的圖表類型,可以用於展示一組數據…

    編程 2025-04-23
  • 深入探究echarts柱狀圖堆疊

    一、echarts柱狀圖堆疊混合 echarts柱狀圖堆疊是一種常用的可視化方式,通過堆疊不同數據項的數值,可以直觀地比較不同數據之間的關係。而在實際應用中,很多情況下我們需要在同…

    編程 2025-04-23
  • 詳解Redis最大連接數

    Redis是一款高性能的Key-Value存儲系統,它的優勢在於快速讀寫大量數據。當Redis處理大量數據時,我們需要考慮它的最大連接數,因為這是應用程序能夠支持的最大連接數。本文…

    編程 2025-04-23

發表回復

登錄後才能評論