java圖表,java圖表框架

本文目錄一覽:

java導出excel圖表

通過Java程序導出帶圖表的excel嗎?參考下面用spire.xls.jar來創建Excel圖表的方法,這裡以創建餅圖為例,當然你也可以指定創建其他圖表類型,如柱狀圖、折線圖、雷達圖、散點圖等等:

import com.spire.xls.*;

import com.spire.xls.charts.ChartSerie;

import java.awt.*;

public class CreatePieChart {

public static void main(String[] args) {

//創建Workbook對象

Workbook workbook = new Workbook();

//獲取第一個工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//將圖表數據寫入工作表

sheet.getCellRange(“A1”).setValue(“年份”);

sheet.getCellRange(“A2”).setValue(“2002”);

sheet.getCellRange(“A3”).setValue(“2003”);

sheet.getCellRange(“A4”).setValue(“2004”);

sheet.getCellRange(“A5”).setValue(“2005”);

sheet.getCellRange(“B1”).setValue(“銷售額”);

sheet.getCellRange(“B2”).setNumberValue(4000);

sheet.getCellRange(“B3”).setNumberValue(6000);

sheet.getCellRange(“B4”).setNumberValue(7000);

sheet.getCellRange(“B5”).setNumberValue(8500);

//設置單元格樣式

sheet.getCellRange(“A1:B1”).setRowHeight(15);

sheet.getCellRange(“A1:B1”).getCellStyle().setColor(Color.darkGray);

sheet.getCellRange(“A1:B1”).getCellStyle().getExcelFont().setColor(Color.white);

sheet.getCellRange(“A1:B1”).getCellStyle().setVerticalAlignment(VerticalAlignType.Center);

sheet.getCellRange(“A1:B1”).getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

sheet.getCellRange(“B2:C5”).getCellStyle().setNumberFormat(“\”¥\”#,##0”);

//添加餅圖

Chart chart = sheet.getCharts().add(ExcelChartType.Pie);

//設置圖表數據區域

chart.setDataRange(sheet.getCellRange(“B2:B5”));

chart.setSeriesDataFromRange(false);

//設置圖表位置

chart.setLeftColumn(3);

chart.setTopRow(1);

chart.setRightColumn(11);

     chart.setBottomRow(20);

//設置圖表標題

chart.setChartTitle(“年銷售額”);

chart.getChartTitleArea().isBold(true);

chart.getChartTitleArea().setSize(12);

//設置系列標籤

ChartSerie cs = chart.getSeries().get(0);

cs.setCategoryLabels(sheet.getCellRange(“A2:A5”));

cs.setValues(sheet.getCellRange(“B2:B5”));

cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);

chart.getPlotArea().getFill().setVisible(false);

 //保存文檔

workbook.saveToFile(“output/PieChart.xlsx”, ExcelVersion.Version2016);

}

}

餅圖創建效果:

excel餅狀圖效果

java報表怎麼做?

用我現在用的finereport來和題主說下餅圖吧,它也是web報表工具。

打開報表,設置百分比數據模板

符合餅圖和複合條餅圖只支持百分比的系列分隔方式,因此我們計算每個地區的應付金額所佔比例是多少,隱藏B列,在C1中輸入佔比,C2中輸入公式:=B2/SUM(B2[!0]),B2[!0]是B2擴展出來的所有單元格,根據情況設置單元格樣式等操作。

下面以製作符合餅圖為例,選中圖表,勾線圖表屬性表-樣式系列中的第二繪圖區,將第二繪圖區小於百分比的數據改為10,默認為5,表示第二繪圖區包含所有小於該百分比的值為:如下圖:

根據情況可設置系列標籤樣式,勾選圖表屬性表-樣式標籤中的標籤,選中值,設置格式,百分比保留兩位小數。

修改圖表數據

修改圖表屬性表-數據圖例項值為C2單元格,複合餅圖則可設置完成。

預覽與保存

保存模板,點擊分頁預覽,即可看到效果。

如何使用java做統計圖表

//參考地址去網站下js控件,下面是餅圖的代碼,下圖是我的代碼效果

function query1(housetype,redStatisticsList,text0,cashingSum,tranferSum){

!–紅包發放數據–

var myrodiusred = echarts.init(document.getElementById(‘mainrodius’));//ID

var redHousehold = housetype;

var redMoney = redStatisticsList;

var allMoney = 0;//總金額

$.each(redStatisticsList,function(index,item){

allMoney =allMoney+ Number(item.value);

})

optionTwo = {

title : {

text: text0,

subtext: “總金額:”+allMoney+”\n\n提現總額:”+cashingSum+”\n\n到賬總額:”+tranferSum,

x:’center’

},

tooltip : {

trigger: ‘item’,

formatter: “{a} br/{b} ({d}%)”

},

legend: {

orient: ‘vertical’,

left: ‘left’,

data: housetype

},

series : [

{

type: ‘pie’,

radius : ‘55%’,

center: [‘50%’, ‘60%’],

data:redMoney,

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: ‘rgba(0, 0, 0, 0.5)’

}

}

}

]

};

        myrodiusred.setOption(optionTwo);

      }

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

{

//設置主題

ChartFactory.setChartTheme(Theme.getTheme());

//構造數據

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, 設置圖表的標題

* java.lang.String categoryAxisLabel, 設置分類軸的標示

* java.lang.String valueAxisLabel, 設置值軸的標示

* CategoryDataset dataset, 設置數據

* PlotOrientation orientation, 設置圖表的方向

* boolean legend, 設置是否顯示圖例

* boolean tooltips,設置是否生成熱點工具

* boolean urls) 設置是否顯示url

*/

JFreeChart chart = ChartFactory.createBarChart3D(“編程語言統計”, “語言”,

“學習人數”, 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();

}

}

}

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

//一條線 有點 有數

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

//首先構造數據

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

// 時間曲線數據集合

TimeSeriesCollection lineDataset = new TimeSeriesCollection();

// 構造數據集合

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

//增加標題

chart.setTitle(new TextTitle(“XXXBMI指數”, new Font(“隸書”, Font.ITALIC, 15)));

chart.setAntiAlias(true);

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

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

plot.setOutlinePaint(Color.PINK);

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

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

AxisSpace as = new AxisSpace();

as.setLeft(25);

as.setRight(25);

plot.setFixedRangeAxisSpace(as);

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

chart.setNotify(true);

// 設置曲線是否顯示數據點

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

xylineandshaperenderer.setBaseShapesVisible(true);

// 設置曲線顯示各數據點的值

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

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192512.html

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

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論