* 生成3D饼状图
*/
public static JFreeChart buildeChartAsPieChart3D(String title,
List<TimeSeriesDataBean> list) {
FontCtl.setFont()// 解决乱码问题
List<String[]> dataList = new ArrayList<String[]>()
String[] ss
for (TimeSeriesDataBean bean : list) {
ss = new String[2]
ss[0] = bean.getNam()
ss[1] = bean.getVal() + ""
dataList.add(ss)
}
DefaultPieDataset dataset = DataSetBuilder.buildPieChartDataSet(title,
dataList)
JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true,
true, false)
// chart.addSubtitle(new TextTitle("SUBTITLE测试"))
PiePlot pieplot = (PiePlot) chart.getPlot()
// {0}:({1})% 代表显示格式 : 0 = 名称 1 = 值 比如 : 名称:19%
StandardPieSectionLabelGenerator standarPieIG = new StandardPieSectionLabelGenerator(
"{0}:({1})", NumberFormat.getNumberInstance(), NumberFormat
.getPercentInstance())
pieplot.setLabelGenerator(standarPieIG)
// 没有数据的时候显示的内容
pieplot.setNoDataMessage("无数据显示")
pieplot.setLabelGap(0.02D)
PiePlot3D pieplot3d = (PiePlot3D) chart.getPlot()
// 设置开始角度
pieplot3d.setStartAngle(120D)
// 设置方向为”顺时针方向“
pieplot3d.setDirection(Rotation.CLOCKWISE)
// 设置透明度,0.5F为半透明,1为不透明,0为全透明
pieplot3d.setForegroundAlpha(0.7F)
ChartFrame frame = new ChartFrame(title, chart)
frame.pack()
frame.setVisible(true)
return chart
}
PiePlot piePlot=(PiePlot)chart.getPlot()piePlot.setBackgroundPaint(null)
加上这两句就可以了,其中,chart是JFreeChar定义的t对象,注意要导入PiePlot包。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)