一. 饼形图
导入两个包: 和
import
java.awt.Color;
import
java.awt.Font;
import
java.util.ArrayList;
import
java.util.List;
import
javax.swing.JFrame;
import
javax.swing.JPanel;
import
org.jfree.chart.ChartFactory;
import
org.jfree.chart.ChartPanel;
import
org.jfree.chart.JFreeChart;
import
org.jfree.chart.block.BlockContainer;
import
org.jfree.chart.block.BorderArrangement;
import
org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import
org.jfree.chart.plot.PiePlot;
import
org.jfree.chart.title.LegendTitle;
import
org.jfree.data.general.DefaultPieDataset;
import
org.jfree.data.general.PieDataset;
import
org.jfree.ui.HorizontalAlignment;
import
org.jfree.ui.RectangleEdge;
import
org.jfree.ui.RefineryUtilities;
import
org.jfree.util.Rotation;
public
class
JFreeChartDemo
{
public
PieDataset
createDataSet(List<Integer> data, List<String> datadescription)
{
if
(data !=
null
&&
datadescription != null
)
if
(data.size()
== datadescription.size()) {
final
DefaultPieDataset
dataset = new
DefaultPieDataset();
for
(
int
i = 0; i <
data.size(); i++)
dataset.setValue(datadescription.get(i),
data.get(i));
return
dataset;
}
return
null
;
}
public
JFreeChart
createChart(PieDataset pieDataset, List<String> pieKeys) {
JFreeChart jfreeChart = ChartFactory.createPieChart(
"
饼形图 " , //
大标题
pieDataset,
false
,
//
不显示图例
false
,
false
);
jfreeChart.setBackgroundPaint(Color. white
);
//
设置背景色
,如图中的白色背景
jfreeChart.setBorderVisible( true
);
//
设置显示边框,如图中的黑色边框
final
PiePlot
piePlot = (PiePlot) jfreeChart.getPlot();
piePlot.setLegendLabelGenerator( new
StandardPieSectionLabelGenerator(
"{0}({1}
次 )"
));
//
设置标签显示数值,
{1}
为数值, {2}
为百分比
piePlot.setBackgroundPaint( new
Color(229,
246, 250)); //
图片背景色
piePlot.setShadowPaint(Color. gray
);
//
设置图的阴影颜色
piePlot.setLabelFont( new
Font(
"SansSerif"
,
Font. PLAIN
,
12)); //
设置标识每块的字体和大小
piePlot.setNoDataMessage( "No data
available" );
//
没有数据时显示这句话
piePlot.setLabelGenerator( new
StandardPieSectionLabelGenerator(
"{0}
({1} 次 )"
));
//
显示每块的数据值
piePlot.setCircular( true
);
//
设置饼为正圆型, false
为椭圆
piePlot.setLabelLinksVisible( true
);
//
设置显示每块的饼和数据之间的线
piePlot.setLabelBackgroundPaint( new
Color(229,
246, 50)); //
设置标签的背景色,如图的黄色部分
piePlot.setLabelOutlinePaint( new
Color(229, 46,
250)); //
设置标签的边框颜色,如图中的红色边框
//
piePlot.setLabelLinkStyle(PieLabelLinkStyle.CUBIC_CURVE);
piePlot.setLabelShadowPaint( new
Color(229, 46,
0)); //
设置标签的背景色,如图中的红色阴影部分
piePlot.setMaximumLabelWidth(0.25D); //
设置标签的最长宽度
piePlot.setLabelLinkMargin(0.05D); //
设置分类标签与图的连接线边距
piePlot.setIgnoreZeroValues( true
);
//
忽略无值的分类
piePlot.setOutlinePaint( new
Color(29, 46,
250)); //
设置饼图的边框,如图中的蓝色边框
piePlot.setLabelGap(0.00D); //
设置饼与边框的距离
jfreeChart.getTitle().setFont( new
Font(
"SansSerif"
,
Font. BOLD
,
16)); //
设置标题的字体
//
jfreeChart.getLegend().setItemFont(
//
new Font("SansSerif", Font.PLAIN, 12));
//
设置分饼颜色
piePlot.setSectionPaint(pieKeys.get(0), new
Color(254, 0,
2));
piePlot.setSectionPaint(pieKeys.get(1), new
Color(245,
250, 25));
piePlot.setSectionPaint(pieKeys.get(2), new
Color(0, 0,
254));
piePlot.setSectionPaint(pieKeys.get(3), new
Color(254, 0,
153));
piePlot.setSectionPaint(pieKeys.get(4), new
Color(155, 2,
253));
piePlot.setSectionPaint(pieKeys.get(5), new
Color(3, 254,
143));
piePlot.setSectionPaint(pieKeys.get(6), new
Color(159,
253, 5));
piePlot.setSectionPaint(pieKeys.get(7), new
Color(0, 254,
0));
piePlot.setSectionPaint(pieKeys.get(8), new
Color(0, 254,
254));
piePlot.setSectionPaint(pieKeys.get(9), new
Color(255, 1,
255));
//piePlot.setDepthFactor(0.16d);
piePlot.setStartAngle(45);
piePlot.setDirection(Rotation. CLOCKWISE
);
piePlot.setForegroundAlpha(0.5f);
//
设置图的透明度
//
指定饼图轮廓线的颜色
piePlot.setBaseSectionOutlinePaint(Color. RED
);
piePlot.setBaseSectionPaint(Color. RED
);
//
将图例显示在图片的右边
LegendTitle legend = new
LegendTitle(piePlot);
BlockContainer wrapper = new
BlockContainer(
new
BorderArrangement());
legend.setBackgroundPaint(Color. gray
);
//
设置图例的背景色,如图中灰色部分
BlockContainer items = legend.getItemContainer();
items.setPadding(2, 10, 5, 2);
wrapper.add(items);
legend.setWrapper(wrapper);
legend.setPosition(RectangleEdge. RIGHT
);
//
将图例显示在图片的右边
legend.setHorizontalAlignment(HorizontalAlignment. LEFT
);
jfreeChart.addSubtitle(legend);
return
jfreeChart;
}
public
static
void
main(String[]
args) {
final
List<Integer>
data = new
ArrayList<Integer>();
final
List<String>
keys = new
ArrayList<String>();
for
(
int
i=0; i<10;
i++) {
data.add((( int
)Math.random())*10+i*10);
keys.add(i + " 月 " );
}
JFreeChartDemo demo = new
JFreeChartDemo();
PieDataset dataset = demo.createDataSet(data, keys);
JPanel panel = new
ChartPanel(demo.createChart(dataset,keys));
panel.setPreferredSize( new
java.awt.Dimension(550,
300));
JFrame jframe = new
JFrame();
jframe.setContentPane(panel);
jframe.pack();
RefineryUtilities.centerFrameOnScreen(jframe);
jframe.setVisible( true
);
}
}
相关推荐
JFreeChar 动态曲线图,定时刷新,带节点事件
JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、散点图等。在Java应用程序中,JFreeChart为数据可视化提供了丰富的功能,使得数据的展示更为直观易懂。在本教程中,...
- "jfreecharss"和"jfreechar"可能是包含JFreeChart示例代码或资源的文件。分析这些文件可以帮助理解如何在实际项目中使用JFreeChart。 综上所述,JFreeChart是一个强大的Java图表库,能够方便地生成各种图表,...
JFreeChart是一款强大的开源Java图表库,它提供了丰富的图表类型,包括柱状图、饼图、折线图、曲线图、散点图等,使得开发者能够轻松地在Java应用中插入美观且功能齐全的图表。在本篇内容中,我们将深入探讨如何利用...
JFreeChar生成饼图图片详细JAVA代码,直接导入eclipse即可使用。
JFreeChar 动态横向柱状图,带纵向滚动条,可根据数据自动计算滚动条长度,可自定义系统柱子颜色,定时刷新
JFreeChart 是一个Java库,它提供了一套丰富的图表组件,可以帮助开发者轻松地在Java应用程序或Web应用中创建各种图表,如柱状图、饼形图和线性图。在这个项目中,我们将深入探讨如何使用JFreeChart来实现这些基本的...
JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,使得开发者能够方便地在应用程序中生成高质量的可视化数据。本学习资料将深入探讨JFreeChart的...
JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...
动态统计图是JFreeChart的一个特色功能,能够实时更新图表数据,使得监控和分析变得更加直观。 JFreeChart支持多种类型的图表,包括但不限于: 1. 折线图(Line Charts):用于展示数据随时间变化的趋势。 2. 柱状...
### JFreeChart 柱图实现详解 #### 引言 在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上...
JFreeChart是一款强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。这个库在IT行业中被广泛使用,特别是在需要进行数据可视化的应用程序中。它允许开发人员通过简单的API调用来...
JFreeChart是一款强大的开源Java图表库,它允许开发者创建各种复杂的图表,如柱状图、折线图、饼图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。在这个小案例中,我们将深入探讨如何使用JFreeChart...
本资料提供的"jfreechar画图源代码"包含了作者自己编写的能运行并显示结果的示例代码,这对于学习和理解JFreeChart的使用非常有帮助。 JFreeChart库提供了丰富的图表类型,包括但不限于: 1. **饼状图(Pie Chart...
它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、面积图、甘特图等,广泛应用于数据分析、报表制作以及各种Java应用程序中。JFreeChart通过其强大的API,使得开发者能够轻松地在程序中集成图表功能,动态...
jfreechar最新jar包 JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包括如下几个方面: pie charts (2D and 3D):饼图(平面和立体) bar charts (regular and stacked, with ...
jfreechar 世纪应用中的线性图 jfreechar 世纪应用中的线性图 jfreechar 世纪应用中的线性图
JFreeChart 支持多种图表类型,如饼图、柱状图、线图、散点图、甘特图等,提供了丰富的定制选项,可以满足开发人员在可视化方面的各种需求。 在Java开发中,JFreeChart插件是一个非常实用的工具,它可以帮助开发者...
**JFreeChart 柱状图实例详解** 在Java编程中,JFreeChart是一个强大的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,使得开发者能够轻松地在应用程序中创建高质量的可视化数据。本实例...