Python使用Plotly绘图工具,绘制饼图

时间:2021-11-26 02:50:41

今天我们来学习一下如何使用Python的Plotly绘图工具,绘制饼图

使用Plotly绘制饼图的方法,我们需要使用graph_objs中的Pie函数

函数中最常用的两个属性values,用于赋值给需要可视化的数据

另外一个属性labels则是表示不同数据所对应的标签

我们先看一个例子

import plotly as py
import plotly.graph_objs as go pyplt = py.offline.plot
labels = ['产品1','产品2','产品3','产品4','产品5']
values = [38.7,15.33,19.9,8.6,17.47]
trace = [go.Pie(labels=labels, values=values)]
layout = go.Layout(
title = '产品比例配比图',
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

Python使用Plotly绘图工具,绘制饼图

import plotly as py
import plotly.graph_objs as go pyplt = py.offline.plot
labels = ['完成','未完成']
values = [0.8,0.2]
trace = [go.Pie(
labels = labels,
values = values,
hole = 0.7,
hoverinfo = "label + percent")]
layout = go.Layout(
title = '产品完成进度图'
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

通过运行上诉代码,我们可以得到如上图所示的饼状结构图

这里样式的设置与我之前写的几篇博客中图形的样式设置类似

我这里就不在重复讲了。

下面说下如何绘制环形饼状图,只需要在Pie函数中设置控制环形中心空白大小的范围即可

import plotly as py
import plotly.graph_objs as go pyplt = py.offline.plot
labels = ['完成','未完成']
values = [0.8,0.2]
trace = [go.Pie(
labels = labels,
values = values,
hole = 0.7,
hoverinfo = "label + percent")]
layout = go.Layout(
title = '产品完成进度图'
)
fig = go.Figure(data = trace, layout = layout)
pyplt(fig, filename='tmp/1.html')

Python使用Plotly绘图工具,绘制饼图

通过运行上诉代码,得到如上图所示环形饼状图

hole属性即是控制空白大小的属性

而在Pie函数中,hoverinfo属性用于控制用户鼠标指针放到环形图上时显示的内容

设置为lable+percent,表示标签加数据所占用的比例

对于饼状图的样式设置说明

import plotly as py
import plotly.graph_objs as go pyplt = py.offline.plot
labels = ['产品1', '产品2',
'产品3', '产品4', '产品5']
values = [30, 25, 15, 22, 8]
colors = ['#FFFF00', '#FF0000', '#E066FF', '#0D0D0D'] trace = [go.Pie(labels = labels,
values = values,
rotation = 30,
opacity = 1,
showlegend = False,
pull = [0.1,0,0,0,0],
hoverinfo = 'label+percent',
textinfo = 'percent', # textinfo = 'value',
textfont = dict(size = 30, color = 'white'),
marker = dict(colors = colors,
line = dict(color = '#000000', width = 2)))]
fig = go.Figure(data = trace)
pyplt(trace, filename='tmp/1.html')

Python使用Plotly绘图工具,绘制饼图

运行上诉代码,可以得到如上图所示图例

rotation参数可以对饼图进行旋转,其取值为0-360

showlegend布尔型,True表示展示,False表示隐藏

pull参数设置饼图的各个扇形的突出程度。

textinfo参数用于设置在扇形上的具体数值

其他参数跟之前的图例基本类似

今天就到这里,谢谢各位点赞支持!!