zoukankan      html  css  js  c++  java
  • 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参数用于设置在扇形上的具体数值

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

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

  • 相关阅读:
    mysql常用命令
    怎么在cmd中输入mysql就可以进去mysql控制台
    ORA-01659: 无法分配超出 7 的 MINEXTENTS
    Oracle修改表空间自增长
    整理下.net分布式系统架构的思路
    Net分布式系统之一:系统整体框架介绍
    QT QTreeWidget 的一个例子 显示文件(夹)的树形结构
    待读 QT 博客
    如何为 QT5 装上 QT4 才有的库
    Python 获取文件夹里所有 log 的起止时间戳
  • 原文地址:https://www.cnblogs.com/ws17345067708/p/10638713.html
Copyright © 2011-2022 走看看