jfreechart生成饼状图显示数据的百分比
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jfreechart生成饼状图显示数据的百分比相关的知识,希望对你有一定的参考价值。
用jfreechart做了一个饼状图,如何让数据的百分比显示在图上,即棉花25%,我试过在setvalue中直接“棉花25%”,但是下面表示棉花的小方块也变成棉花25%。
如何解决,请高手前辈们指点,谢谢
PiePlot pieplot = (PiePlot) chart.getPlot();//获取图片对象
// 图片中显示百分比:自定义方式,0 表示选项, 1 表示数值, 2 表示所占比例 ,小数点后两位
piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"0(2)", NumberFormat.getNumberInstance(),
new DecimalFormat("0.00%")));
以上为关键代码。需要通过setLableGenerator方法设置标签显示格式。StandardPieSectionLabelGenerator对象构造方法中,0,2都将被替换为相应字符,0显示的是花生、大豆等信息,2显示的是百分比,后面两个参数是设置百分比格式,可以不设置,默认不保留小数点。最后图表显示的信息为:花生(xx.xx%) 小麦(xx.xx%)。
图下面的描述也可以设置显示格式,关键代码为:
// 图例显示百分比:自定义方式, 0 表示选项, 1 表示数值, 2 表示所占比例piePlot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
"0 (2)"));
注意,这是setLegendLableGenerator()。可以多试试new StandardPieSectionLabelGenerator("0 (2)")里的参数设置。
Matplotlib基本图形之饼状图
Matplotlib基本图形之饼状图
饼状图特点:
饼状图显示一个数据系列中各项大小与各项总和的比例
饼状图的数据点显示为整个饼状图的百分比
示例代码
import os import time import numpy as np import matplotlib.pyplot as plt basedir = os.path.dirname(os.path.abspath(__file__)) resultdir = os.path.join(basedir, ‘result‘) class Create_pie(object): def __init__(self,data,labels,dst,name=‘‘,title=‘Title‘,aspect=1,autopct=‘%0.2f%%‘,explode=[],shadow=True): ‘‘‘ :param data: 饼状图使用的数据,一般为列表 :param labels: 饼状图各个label名称,一般为列表 :param dst: 存放生成图片的文件夹路径 :param name: 图片的名称,默认为当前时间戳 :param title: 图片的标题,默认为Title :param aspect: 图片x轴与y轴的比例,默认为1 :param autopct: 用来在饼状图上添加格式化字符串 :param explode: 饼状图各个饼叶偏离中心的距离占半径的比例,默认为不偏离 :param shadaw: 是否显示阴影,默认为显示 ‘‘‘ self.data = data self.labels = labels self.dst = dst self.name = name if name else str(int(time.time())) self.title = title self.aspect = aspect self.autopct = autopct self.explode = explode if explode else [x*0 for x in range(len(data))] self.shadow = shadow def drew(self): plt.axes(aspect=self.aspect) plt.pie( x = self.data, labels = self.labels, autopct = self.autopct, explode= self.explode, shadow = self.shadow ) plt.title(self.title) picname = self.name+‘.jpg‘ picdir = os.path.join(self.dst, picname) plt.savefig(picdir)
实例化对象,运行程序
N = [39,46,55,73] labels = [‘A‘,‘B‘,‘C‘,‘D‘] explode = [0,0.1,0,0] PIC = Create_pie(N,labels,resultdir,explode=explode) PIC.drew()
运行结果如下:
当shadow=False时,运行结果如下:
当不配置explode时,运行结果如下:
当不配置autopct时,运行结果如下:
以上是关于jfreechart生成饼状图显示数据的百分比的主要内容,如果未能解决你的问题,请参考以下文章