当前位置:脚本大全 > > 正文

python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

时间:2021-10-23 10:28:21类别:脚本大全

python柱状图第四节

python使用Plotly绘图工具绘制柱状图

本文实例为大家分享了python使用plotly绘图工具绘制柱状图的具体代码,供大家参考,具体内容如下

使用plotly绘制基本的柱状图,需要用到的函数是graph_objs 中 bar函数

通过参数,可以设置柱状图的样式。

通过barmod进行设置可以绘制出不同类型的柱状图出来。

我们先来实现一个简单的柱状图:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • # -*- coding: utf-8 -*-
  • import plotly as py
  • import plotly.graph_objs as go
  • pyplt = py.offline.plot
  • # trace
  • trace_basic = [go.bar(
  •  x = ['variable_1', 'variable_2', 'variable_3','variable_4','variable_5'],
  •  y = [1, 2, 3, 2, 4],
  •  )]
  • # layout
  • layout_basic = go.layout(
  •  title = 'the graph title',
  •  xaxis = go.xaxis(range = [-0.5,4.5], domain = [0,1])
  •  )
  • # figure
  • figure_basic = go.figure(data = trace_basic, layout = layout_basic)
  • # plot
  • pyplt(figure_basic, filename='tmp/1.html')
  • python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

    上面这个例子,就是一个简单的柱状图。

    下面我们讲下另外一种图,柱状簇

    实现过程则是,在基本的柱状图中,加入多租数据即可实现,柱状簇

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • import plotly as py
  • import plotly.graph_objs as go
  • pyplt = py.offline.plot
  • # traces
  • trace_1 = go.bar(
  •  x = ["西南石油", "东方明珠", "海泰发展"],
  •  y = [4.12, 5.32, 0.60],
  •  name = "201609"
  •  )
  • trace_2 = go.bar(
  •  x = ["西南石油", "东方明珠", "海泰发展"],
  •  y = [3.65, 6.14, 0.58],
  •  name = "201612"
  •  )
  •  
  • trace_3 = go.bar(
  •  x = ["西南石油", "东方明珠", "海泰发展"],
  •  y = [2.15, 1.35, 0.19],
  •  name = "201703"
  •  )
  • trace = [trace_1, trace_2, trace_3]
  • # layout
  • layout = go.layout(
  •  title = '净资产收益率对比图'
  •  )
  • # figure
  • figure = go.figure(data = trace, layout = layout)
  • # plot
  • pyplt(figure, filename='tmp/2.html')
  • python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

    执行上述代码,我们可以看到如上图所示柱状簇图例

    可将数据堆叠生成。

    接下来在讲讲如何绘制层叠柱状图

    层叠柱状图的绘制方法与柱状簇的绘制方法基本差不多

    也就是对同一个柱状簇进行叠加,实现方法是对layout中的barmode属性进行设置

    barmode = 'stack'

    其余参数,与柱状簇相同。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • # -*- coding: utf-8 -*-
  • import plotly as py
  • import plotly.graph_objs as go
  • pyplt = py.offline.plot
  •  
  • # stacked bar chart
  • trace_1 = go.bar(
  •  x = ['深证50', '上证50', '西南50', '西北50','华中50'],
  •  y = [0.7252, 0.9912, 0.5347, 0.4436, 0.9911],
  •  name = '股票投资'
  • )
  •  
  • trace_2 = go.bar(
  •  x = ['深证50', '上证50', '西南50', '西北50','华中50'],
  •  y = [0.2072, 0, 0.4081, 0.4955, 0.02],
  •  name='其它投资'
  • )
  •  
  • trace_3 = go.bar(
  •  x = ['深证50', '上证50', '西南50', '西北50','华中50'],
  •  y = [0, 0, 0.037, 0, 0],
  •  name='债券投资'
  • )
  •  
  • trace_4 = go.bar(
  •  x = ['深证50', '上证50', '西南50', '西北50','华中50'],
  •  y = [0.0676, 0.0087, 0.0202, 0.0609, 0.0087],
  •  name='银行存款'
  • )
  •  
  • trace = [trace_1, trace_2, trace_3, trace_4]
  • layout = go.layout(
  •  title = '基金资产配置比例图',
  •  barmode='stack'
  • )
  •  
  • fig = go.figure(data = trace, layout = layout)
  • pyplt(fig, filename='tmp/1.html')
  • python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

    瀑布式柱状图

    瀑布式柱状图是层叠柱状图的另外一种表现

    可以选择性地显示层叠部分来实现柱状图的悬浮效果。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • # -*- coding: utf-8 -*-
  • import plotly as py
  • import plotly.graph_objs as go
  • pyplt = py.offline.plot
  •  
  • x_data = ['资产1', '资产2',
  •   '资产3','资产4', '总资产']
  • y_data = [56000000, 65000000, 65000000, 81000000, 81000000]
  • text = ['666,999,888万元', '8,899,666万元', '88,899,666万元', '16,167,657万元', '888,888,888万元']
  •  
  • # base
  • trace0 = go.bar(
  •  x=x_data,
  •  y=[0, 57999848, 0, 66899764, 0],
  •  marker=dict(
  •  color='rgba(1,1,1, 0.0)',
  •  )
  • )
  • # trace
  • trace1 = go.bar(
  •  x=x_data,
  •  y=[57999848, 8899916, 66899764,16167657, 83067421],
  •  marker=dict(
  •  color='rgba(55, 128, 191, 0.7)',
  •  line=dict(
  •   color='rgba(55, 128, 191, 1.0)',
  •   width=2,
  •  )
  •  )
  • )
  •  
  • data = [trace0, trace1]
  • layout = go.layout(
  •  title = '测试图例',
  •  barmode='stack',
  •  showlegend=false
  • )
  •  
  • annotations = []
  •  
  • for i in range(0, 5):
  •  annotations.append(dict(x=x_data[i], y=y_data[i], text=text[i],
  •      font=dict(family='arial', size=14,
  •      color='rgba(245, 246, 249, 1)'),
  •      showarrow=false,))
  •  layout['annotations'] = annotations
  •  
  • fig = go.figure(data=data, layout=layout)
  • pyplt(fig, filename = 'tmp/1.html')
  • python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

    运行上述代码,可以得到如上图所示的瀑布式柱状图。

    下面我们说说,图形样式的设置。

    对于柱状图颜色与样式的设置可以通过设置下面这个案例来说明。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • import plotly as py
  • import plotly.graph_objs as go
  • pyplt = py.offline.plot
  •  
  • # customizing inliidual bar colors
  • volume = [0.49,0.71,1.43,1.4,0.93]
  • width = [each*3/sum(volume) for each in volume]
  • trace0 = go.bar(
  •  x = ['au.shf', 'ag.shf', 'sn.shf',
  •  'pb.shf', 'cu.shf'],
  •  y = [0.85, 0.13, -0.93, 0.46, 0.06],
  •  width = width,
  •  marker = dict(
  •  color=['rgb(205,38,38)', 'rgb(205,38,38)',
  •   'rgb(34,139,34)', 'rgb(205,38,38)',
  •   'rgb(205,38,38)'],
  •  line=dict(
  •   color='rgb(0,0,0)',
  •   width=1.5,
  •  )),
  •  opacity = 0.8,
  • )
  •  
  • data = [trace0]
  • layout = go.layout(
  •  title = '有色金属板块主力合约日内最高涨幅与波动率图',
  •  xaxis=dict(tickangle=-45),
  • )
  •  
  • fig = go.figure(data=data, layout=layout)
  • pyplt(fig, filename='tmp/4.html')
  • python柱状图第四节(python使用Plotly绘图工具绘制柱状图)

    运行上述代码,可以看到上图所示图例

    柱状图展示了5种金属,在某个交易日的最高涨幅与波动率情况,柱形图宽度表示相对波动率的高低。

    柱形图越宽,波动率越大,高度表示涨幅,红色表示上涨,绿色表示下跌。

    用line设置柱状图外部线框,用width设置柱状图的宽度,用opacity设置柱状图颜色的透明度情况。

    基本的柱状图情况,就讲到这里。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/u012798683/article/details/88800743

    上一篇下一篇

    猜您喜欢

    热门推荐