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 图形折线,饼图,柱状图等各种图形
jfreechat 曲线图 饼图 柱状图 免费图标 图表
源文件 博文链接:https://lansky07.iteye.com/blog/227571
java 调用jfreechart 实现柱状图、曲线图、饼图,非常简单灵活!超好看!
jfreechart 曲线图 3d饼图 3d柱状图 代码,以及生成的图样,还有需要的包也一并上传,希望对大家有用处
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帮助文件)
java绘制图表(柱状图、饼图、折线图)包, jfreechart
JFreeChart 饼图、柱状图 例 (含数据库) MyEclipse版
jfreechart 生成折线图,饼图,柱状图,堆栈柱状图
使用JFreeChart绘制饼图,折线图,柱状图的代码试例
jfreechart_生成折线图,饼图,柱状图,堆栈柱状图
NULL 博文链接:https://jeasonjack.iteye.com/blog/1187903
JFreeChart主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等
在网上下了个资料,没有中文处理,了没有连接数据库,而且代码结构了有些乱,在原代码的基础做了一些修改。数据库采用的是ORACLE。已经解决了中文乱码等问题。有需要的可以下载下来参考!
投票系统struts2.0+hibernate3.2+spring2.5+sqlserver2005数据库,+JFReeChart饼图,柱状图显示。
NULL 博文链接:https://dpn525.iteye.com/blog/847847
项目中用到了一些图,要用JFreeChart生成,参考了一些资料,做了两天,分享一下!里面有柱状图,饼状图...
此资源有完整柱状图,折线图,等例子,下载后可以部署运行,也可参考源码