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参数用于设置在扇形上的具体数值

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

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

  • 相关阅读:
    Python算法与数据结构--求所有子数组的和的最大值
    Python算法练习--把搜索树转成双向链表
    将HTML字符转换为DOM节点并动态添加到文档中
    设计包含min函数的栈
    Python学习:类和实例
    Javascript 装饰器极速指南
    【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
    textarea的中文输入判断与搜狗输入法的特殊行为
    python 人工智能资源推荐
    Python 黑客相关电子资源和书籍推荐
  • 原文地址:https://www.cnblogs.com/ws17345067708/p/10638713.html
Copyright © 2011-2022 走看看