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

今天我们来学习一下如何使用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')

 

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')

 

 

 

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

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')

 

 

 

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

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

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

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

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

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

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

posted @ 2019-04-01 20:28  上帝的中腿  阅读(6158)  评论(0编辑  收藏  举报