使用JFreeChart-创建饼图的小结

由于工作中使用最多的图之一就是饼图了,所以在这做一个小结;


  • 使用的 dataset对象是 DefaultPieDataset


DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Section 1", 23.3);
dataset.setValue("Section 2", 56.5);
dataset.setValue("Section 3", 43.3);
dataset.setValue("Section 4", 11.1);
  • 使用的JFreeChart对象是:ChartFactory.createPieChart()
JFreeChart chart = ChartFactory.createPieChart("Chart 1", dataset, 
                false, false, false);
  • 对于饼图的图表的定制

由于饼图是一个比较特殊的图形-他没有轴(横轴,纵轴),所以就不需要创建Axis对象(或其子类)

  • 对于饼图所使用的图表区域对象是:PiePlot

PiePlot plot = (PiePlot) chart.getPlot();
  • 对于PiePlot的方法有:

void setDataset(PieDataset dataset) 数据区的1维数据表 
void setIgnoreNullValues(boolean flag) 忽略无值的分类 
void setCircular(boolean flag) 饼图是否一定是正圆 
void setStartAngle(double angle) 饼图的初始角度 
void setDirection(Rotation direction) 饼图的旋转方向 
void setExplodePercent(int section,double percent) 抽取的那块(1维数据表的分类下标)以及抽取出来的距离(0.0~1.0),3D饼图无效 
void setLabelBackgroundPaint(Paint paint) 分类标签的底色 
void setLabelFont(Font font) 分类标签的字体 
void setLabelPaint(Paint paint) 分类标签的字体颜色 
void setLabelLinkMargin(double margin) 分类标签与图的连接线边距 
void setLabelLinkPaint(Paint paint) 分类标签与图的连接线颜色 
void setLabelLinkStroke(Stroke stroke) 分类标签与图的连接线笔触 
void setLabelOutlinePaint(Paint paint) 分类标签边框颜色 
void setLabelOutlineStroke(Paint paint) 分类标签边框笔触 
void setLabelShadowPaint(Paint paint) 分类标签阴影颜色 
void setMaximumLabelWidth(double width) 分类标签的最大长度(0.0~1.0) 
void setPieIndex(int index) 饼图的索引(复合饼图中用到) 
void setSectionOutlinePaint(int section,Paint paint) 指定分类饼的边框颜色 
void setSectionOutlineStroke(int section,Stroke stroke) 指定分类饼的边框笔触 
void setSectionPaint(int section,Paint paint) 指定分类饼的颜色 
void setShadowPaint(Paint paint) 饼图的阴影颜色 
void setShadowXOffset(double offset) 饼图的阴影相对图的水平偏移 
void setShadowYOffset(double offset) 饼图的阴影相对图的垂直偏移 
void setLabelGenerator(PieSectionLabelGenerator generator) 分类标签的格式,设置成null则整个标签包括连接线都不显示 
void setToolTipGenerator(PieToolTipGenerator generator) MAP中鼠标移上的显示格式 
void setURLGenerator(PieURLGenerator generator) MAP中钻取链接格式

由于PiePlot是Plot的子类,所以还继承了Plot的类

void setBackgroundImage(Image image) 数据区的背景图片 
void setBackgroundImageAlignment(int alignment) 数据区的背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义) 
void setBackgroundPaint(Paint paint) 数据区的背景图片背景色 
void setBackgroundAlpha(float alpha) 数据区的背景透明度(0.0~1.0) 
void setForegroundAlpha(float alpha) 数据区的前景透明度(0.0~1.0) 
void setDataAreaRatio(double ratio) 数据区占整个图表区的百分比 
void setOutLinePaint(Paint paint) 数据区的边界线条颜色 
void setOutLineStroke(Stroke stroke) 数据区的边界线条笔触 
void setNoDataMessage(String message) 没有数据时显示的消息 
void setNoDataMessageFont(Font font) 没有数据时显示的消息字体 
void setNoDataMessagePaint(Paint paint) 没有数据时显示的消息颜色






你可能感兴趣的:(jfreechart)