生成饼状图

###############    data:2021.4.9            ###############################
###############    function:数据分布饼状图   ###############################
from openpyxl import load_workbook, Workbook
import matplotlib.pyplot as plt

#参数划分为小于5%(pie_num1),5%~10%(pie_num2), 10%~20%(pie_num3), >20%
PIE_NUM1 = 5
PIE_NUM2 = 10
PIE_NUM3 = 20
#文件路径
filepath = r'D:\work\python_work\eswin\song_1\statistic.xlsx'
#打开文件
wb = load_workbook(filepath)
#打开statistic
ws_stic = wb['statistic']

plt.rcParams['font.sans-serif']='SimHei'#设置中文显示
plt.figure(figsize=(6,6))#将画布设定为正方形,则绘制的饼图是正圆

label=['<5%','5%~10%','10%~20%','>20%']#定义饼图的标签,标签是列表

explode=[0.01,0.01,0.01,0.01]#设定各项距离圆心n个半径
#plt.pie(values[-1,3:6],explode=explode,labels=label,autopct='%1.1f%%')#绘制饼图

##每部分数据计数
rows_stic = ws_stic.max_row
j = 1
sum_pie1 = 0
sum_pie2 = 0
sum_pie3 = 0
sum_pie4 = 0
num_stic = 0
offset_radio = 0
prop = 0
while j<rows_stic:
    j = j+1
    #轮询statistic
    offset_radio = ws_stic.cell(row=j, column=7).value
    prop = ws_stic.cell(row=j, column=8).value
    if offset_radio<=PIE_NUM1:
        sum_pie1 = sum_pie1+prop
    if PIE_NUM1<offset_radio<=PIE_NUM2:
        sum_pie2 = sum_pie2+prop
    if PIE_NUM2<offset_radio<=PIE_NUM3:
        sum_pie3 = sum_pie3+prop
    if offset_radio>PIE_NUM3:
        sum_pie4 = sum_pie4+prop   


values=[sum_pie1, sum_pie2, sum_pie3, sum_pie4]
print(values)
plt.pie(values,explode=explode,labels=label,autopct='%1.1f%%')#绘制饼图
plt.title('数据分布图')#绘制标题
plt.savefig('./数据分布饼状图')#保存图片
plt.show()
好的,如果您想在SSM框架中使用ECharts生成饼状图,可以按照以下步骤进行: 1. 在您的项目中引入ECharts的JS文件,可以通过ECharts官网下载压缩包获取,或者引入CDN资源。 2. 在您的HTML文件中添加一个DOM元素,作为ECharts图表的容器,例如: ```html <div id="pieChart" style="width: 600px;height:400px;"></div> ``` 3. 在您的JavaScript文件中,通过ECharts的API来设置图表的配置项和数据项,例如: ```javascript // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('pieChart')); // 配置项和数据 var option = { title : { text: '各个地区销售占比', subtext: '2021年第一季度', x:'center' }, tooltip : { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: ['北京','上海','广州','深圳','成都'] }, series : [ { name: '销售占比', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:335, name:'北京'}, {value:310, name:'上海'}, {value:234, name:'广州'}, {value:135, name:'深圳'}, {value:1548, name:'成都'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); ``` 在这个例子中,我们通过ECharts的API来设置了一个简单的饼状图,包括图表的标题、提示框、图例和数据项等等。您可以根据您的需求进行自定义配置。 4. 将上述JavaScript代码放到您的SSM项目中对应的位置,例如在某个Controller的方法中,返回一个包含ECharts图表的HTML页面。 ```java @RequestMapping("/pieChart") public String pieChart(Model model) { return "pieChart"; } ``` 在这个例子中,我们返回了一个名为"pieChart"的HTML页面,其中包含了一个ECharts图表。 5. 最后,启动您的SSM应用程序,并访问对应的URL地址,您应该能够看到一个包含ECharts饼状图的页面了。 希望这些步骤能够帮助您使用ECharts生成饼状图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值