JfreeChart画出柱状图饼图的代码片段及详细的注释,附件为JfreeChart中文API一览表,和生成的柱状图,饼图图片
import
java.awt.Font;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
org.jfree.chart.ChartFactory;
import
org.jfree.chart.ChartUtilities;
import
org.jfree.chart.JFreeChart;
import
org.jfree.chart.axis.CategoryAxis;
import
org.jfree.chart.axis.NumberAxis;
import
org.jfree.chart.plot.CategoryPlot;
import
org.jfree.chart.plot.PiePlot3D;
import
org.jfree.chart.plot.PlotOrientation;
import
org.jfree.chart.renderer.category.BarRenderer;
import
org.jfree.chart.title.TextTitle;
import
org.jfree.data.category.DefaultCategoryDataset;
import
org.jfree.data.general.DefaultPieDataset;
public
class
ChartDemo {
public
static
void
main(String[]
args) {
ChartDemo chartD =
new
ChartDemo();
chartD.createBarDemo(
"c:\\bar.jpg"
);
chartD.createPieDemo(
"c:\\pie.jpg"
);
}
//
创建柱状图
public
void
createBarDemo(String jpgname) {
//
创建数据的集合
DefaultCategoryDataset dataset = getBarDataset();
/*
* createBarChart3D
创建柱图,第一个参数是图标的标题,第二个是
X
轴标题,第三个是
Y
轴标题,第四个是数据集合,
*
PlotOrientation.HORIZONTAL ,
图表方向:水平
PlotOrientation.VERTICAL ,
*
图表方向:垂直
false,
是否显示图例
(
对于简单的柱状图必须是
false),
生成在图片的最下方,该例中表示什么颜色代表什么地方。
* true,
是否生成工具
true
是否生成
URL
链接
*
*/
JFreeChart chart = ChartFactory.createBarChart3D
(
"
水果产量图
"
,
"
水果
"
,
"
产量
"
,
dataset, PlotOrientation.
VERTICAL
,
true
,
false
,
false
);
//
获取柱状图的
plot
的对象
CategoryPlot plot = chart.getCategoryPlot();
//
获得标题类,设置标题的字体颜色大小
TextTitle textTitle = chart.getTitle();
//
取得纵轴
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
// PLAIN
字体样式为普通,
BOLD
字体样式为粗体
textTitle.setFont(
new
Font(
"
黑体
"
, Font.
BOLD
, 30));
//
取得横轴
CategoryAxis domainAxis = plot.getDomainAxis();
//
设置柱状图整体距离
y
轴左侧
10%
domainAxis.setLowerMargin(0.1);
//
设置柱状图整体距离
y
轴右侧
10%
domainAxis.setUpperMargin(0.1);
//
设置
X
轴与
X
轴标签之间的距离为
1
个像素
setCategoryMargin
设置距离百分比
domainAxis.setCategoryLabelPositionOffset(1);
//
设置横轴标尺值字体
domainAxis.setTickLabelFont(
new
Font(
"sans-serif"
, Font.
BOLD
, 22));
//
设置横轴显示标签的字体
domainAxis.setLabelFont(
new
Font(
"
宋体
"
, Font.
BOLD
, 18));
//
设置纵轴标尺值字体
numberaxis.setTickLabelFont(
new
Font(
"sans-serif"
, Font.
BOLD
, 22));
//
设置纵轴显示标签字体
numberaxis.setLabelFont(
new
Font(
"
黑体
"
, Font.
BOLD
, 18));
// char.getLegend
取得表的第一个图例,设置图例的字体
chart.getLegend().setItemFont(
new
Font(
"
宋体
"
, Font.
BOLD
, 22));
//
文件输出流,传进来一个输出地址作为参数
FileOutputStream jpg =
null
;
try
{
jpg =
new
FileOutputStream(jpgname);
/*
*
第一个参数是输出流对象,第二个是分辨率
介于
0.1F
到
1.0F
之间
第三个是
chart
对象(图像作为输出流进行输出)
*
第四个第五个是图片大小的设置。
*
*/
ChartUtilities.writeChartAsJPEG
(jpg,
1.0f, chart, 900, 700);
}
catch
(Exception e) {
//
TODO
自动生成
catch
块
e.printStackTrace();
}
finally
{
try
{
jpg.close();
}
catch
(IOException e) {
//
TODO
自动生成
catch
块
e.printStackTrace();
}
}
}
//
获取柱状图数据
private
DefaultCategoryDataset getBarDataset() {
DefaultCategoryDataset dataset =
new
DefaultCategoryDataset();
//
往
dataset
中加入数据,第一个参数是
y
轴坐标,第三个参数是
x
轴坐标,第二个参数是每个参量
dataset.addValue(33,
"
北京
"
,
"
苹果
"
);
dataset.addValue(55,
"
上海
"
,
"
梨子
"
);
dataset.addValue(77,
"
南昌
"
,
"
葡萄
"
);
dataset.addValue(13,
"
海南
"
,
"
香蕉
"
);
dataset.addValue(28,
"
北京
"
,
"
荔枝
"
);
dataset.addValue(65,
"
上海
"
,
"
荔枝
"
);
return
dataset;
}
//
创建饼图
@SuppressWarnings
(
"deprecation"
)
public
void
createPieDemo(String jpgname) {
DefaultPieDataset dataset = getPieDataset();
JFreeChart chart = ChartFactory.createPieChart3D
(
"
水果产量
"
, dataset,
true
,
true
,
true
);
//
获得标题类,设置标题的字体颜色大小
TextTitle textTitle = chart.getTitle();
textTitle.setFont(
new
Font(
"
黑体
"
, Font.
BOLD
, 50));
//
设置饼图图例字体的大小
chart.getLegend().setItemFont(
new
Font(
"
宋体
"
, Font.
BOLD
, 22));
//
获得饼图
plot
的对象
PiePlot3D plot = (PiePlot3D) chart.getPlot();
//
设置饼图旁边的中文字体
plot.setLabelFont(
new
Font(
"
黑体
"
, Font.
PLAIN
, 22));
FileOutputStream jpg =
null
;
try
{
jpg =
new
FileOutputStream(jpgname);
ChartUtilities.writeChartAsJPEG
(jpg, 1.0f, chart, 900,
700,
null
);
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
try
{
jpg.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
/**
*
添加饼状图数据,
setValue
只有两个参数第一个是变量的名字,第二个是变量的值
*
*/
private
DefaultPieDataset getPieDataset() {
DefaultPieDataset dataset =
new
DefaultPieDataset();
dataset.setValue(
"
苹果
"
, 100);
dataset.setValue(
"
梨子
"
, 200);
dataset.setValue(
"
葡萄
"
, 300);
dataset.setValue(
"
荔枝
"
, 400);
dataset.setValue(
"
香蕉
"
, 500);
dataset.setValue(
"
枣子
"
, 600);
return
dataset;
}
}
- 大小: 28 KB
- 大小: 24 KB
分享到:
相关推荐
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图形绘制功能,包括曲线图、饼图和柱状图等。这个库是免费的,适用于各种项目,无论是商业应用还是个人学习,都能从中受益。在本篇文章中,我们将深入探讨...
JFreeChart 是一个广泛使用的开源 Java 图形库,它允许开发人员轻松地创建各种图表,包括折线图、饼图和柱状图。这个库为 Java 应用程序提供了丰富的图表功能,适用于数据可视化的需求,无论是简单的报告还是复杂的...
在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...
综上所述,自定义JFreeChart柱状图涉及了数据准备、渲染器配置、外观调整、标签和提示信息等多个方面。通过深入理解这些知识点,开发者可以创建出满足各种需求的个性化柱状图。提供的文件如"JFreeChart中柱状图的...
JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、曲线图和饼图等,使得在Java应用中展示数据变得更加直观和美观。在本篇文章中,我们将深入探讨如何利用JFreeChart来创建这些图表,...
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
**JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...
这个库支持多种图表类型,包括柱状图、饼图和折线图,适用于数据分析、报告生成以及可视化展示等多种场景。在Java开发中,JFreeChart提供了一个简单易用的API,使得开发者可以轻松地将复杂的统计或业务数据转化为...
jfreechart-1.0.8a-swt.jar jfreechart-1.0.8a.jar jfreechart-1.0.8a-experimental.jar jcommon-1.0.12.jar gnujaxp.jar 及网上找到的简单的饼图和柱状图的用例(jfreechart.exe帮助文件)
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图等,并且能够与数据库进行交互,为数据分析和可视化提供便利。在这个MyEclipse项目中,你将找到如何利用JFreeChart来实现这些...
jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,如柱状图、饼图、线图、散点图等,适用于各种数据分析和可视化需求。本资料主要聚焦于JFreeChart在创建柱状图方面的应用。 1. **JFreeChart...
在Java编程领域,JFreeChart是一个非常流行的图表库,它提供了丰富的图表类型,如柱状图、饼图、线图等,用于数据可视化。当我们需要创建一个柱状图,并且希望在同一组数据中,每根柱子显示不同的颜色时,JFreeChart...
JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。这个压缩包提供的源代码示例,展示了如何使用 JFreeChart ...
在这个主题中,我们将深入探讨"JFreeChart柱状图的类的封装",了解如何利用这个库来创建柱状图以及相关的类和工具。 首先,JFreeChart的核心类之一是`CategoryPlot`,它是柱状图的基础。`CategoryPlot`负责管理类别...
JFreeChart则是一个用Java编写的图表库,可以生成各种类型的图表,如柱状图、折线图、饼图等。在这个Demo中,JFreeChart被用来根据从数据库获取的数据生成柱状图。开发者首先需要通过JDBC连接到MySQL或Oracle数据库...