Plotly之饼图

饼图简介

饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。

使用要求

1、仅有一个要绘制的数据系列

2、要绘制的数值没有负值

3、要绘制的数值几乎没有零值

4、类别数目无限制

5、各类别分别代表整个饼图的一部分

6、各个部分需要标注百分比

基本饼图

使用Plotly绘制饼图需要使用graph_objs中的Pie函数。Pie函数中有两个最常用的属性,一个是values属性,用于赋给其需要的可视化数据;另一个是labels,表示不同数据对应的标签。

代码实现

import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot
labels=['股票','债券','现金','衍生品','其他']
values=[33.7,20.33,9.9,8.6,27.47]
trace=[go.Pie(labels=labels,values=values)]
layout=go.Layout(
    title='基金资产配置比例图'
)
fig=go.Figure(data=trace,layout=layout)
pyplt(fig,filename='temp/基本饼图.html')
效果截图

在这里插入图片描述

环形饼图

绘制环形图时,只需要在Pie函数中设置控制环形中心空白大小的hole属性即可。Pie函数中的hoverinfo属性用于控制当用户将鼠标放在环形图上时显示的内容,设置为"label+percent"表示显示标签加数据所占比例。

代码实现
import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot
labels=['完成','未完成']
values=[0.7,0.3]
trace=[go.Pie(
    labels=labels,
    values=values,
    hole=0.7,   #控制环形中心空白大小
    hoverinfo='label+percent'       #hoverinfo属性用于控制当用户将鼠标指针放到环形图上时,显示的内容
)]
layout=go.Layout(
    title='工作进程图',
)
fig=go.Figure(data=trace,layout=layout)
pyplt(fig,filename='temp/环形饼图.html')
效果截图

在这里插入图片描述

饼图样式

代码实现
import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot
labels=['上海国际集团有限公司','中国移动集团有限公司','富德生命人寿-传统','富德生命人寿-资本金','上海上国投资产管理有限公司']
values=[4222533311,4103763711,2138028672,1356332558,1073516173]
colors=['#104E8B','#1874CD','#1C86EE','#6495ED']
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',
    textfont=dict(size=30,color='white'),
    marker=dict(colors=colors,line=dict(color='#000000',width=2))
)]
fig=go.Figure(data=trace)
pyplt(trace,filename='temp/饼图样式设置.html')

效果截图

在这里插入图片描述

饼图案例

代码实现!
import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot
fig={
    "data":[
        {
            "values":[9884,9510,9363,7961,6755],
            "labels":['金瑞期货','海通期货','国泰君安','银海期货','五矿经易'],
            'domain':{'x':[0,0.6],'y':[0,0.5]},
            'name':"AU.SHF多头持仓",
            'hoverinfo':"label+percent+name",
            'hole':.4,
            'type':"pie"
        },
        {
            'values':[8847,6229,2764,2406,2022],
            'labels':['中信期货','招财期货','国贸期货','铜冠金源','中银国际'],
            'domain':{'x':[.2,1],'y':[0,.5]},
            'name':"AU.SHF空头持仓",
            'hoverinfo':'label+percent+name',
            'hole':.4,
            'type':'pie'
        },
        {
            'values':[14393,12220,11824,11233,10072],
            'labels':['中信期货','东证期货','海通期货','方正中期','国泰君安'],
            'domain':{'x':[0,.9],'y':[.5,1]},
            'name':'AG.SHF多头持仓',
            'hoverinfo':'label+percent+name',
            'hole':.4,
            'type':'pie'
        },
        {
            'values':[30983,20699,16781,15686,14198],
            'labels':['中信期货','国泰君安','海通期货','国贸期货','永安期货'],
            'domain':{'x':[0.5,1],'y':[0.5,1]},
            'name':'AG.SHF空头持仓',
            'hoverinfo':'label+percent+name',
            'hole':.4,
            'type':'pie'
        }
    ],
    'layout':{
        'title':'有色金属板块主力合约多空持仓分布图',
        'annotations':[
            {
            'font':{'size':18},
            'showarrow':False,
            'text':'AU.SHF多头持仓',
            'x':0.45,
            'y':0.754
        },
            {
                'font':{'size':18},
                'showarrow':False,
                'text':'AU.SHF多头持仓',
                'x':0.794,
                'y':0.754

            },
            {
                'font':{'size':18},
                'showarrow':False,
                'text':'AU.SHF多头持仓',
                'x':0.255,
                'y':0.23
            },
            {
                'font':{'size':18},
                'showarrow':False,
                'text':'AG.SHF空头持仓',
                'x':0.6,
                'y':0.23
            }]
    }
}
pyplt(fig,filename='temp/饼图应用案例.html')

效果截图!

在这里插入图片描述

反思总结

  1. 通过这几个基本图形的学习,其他的图形案例用法基本如此。

  2. Plotly的格式是严格的,所以需要记住它的基本结构。以及一些参数。

  3. 不能自以为是,学会这些还不算学会数据分析。

在这里插入图片描述

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值