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


Posted in Python onApril 01, 2019

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

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

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

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

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

# -*- 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使用Plotly绘图工具绘制柱状图

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

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

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

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使用Plotly绘图工具绘制柱状图

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

可将数据堆叠生成。

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

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

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

barmode = 'stack'

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

# -*- 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使用Plotly绘图工具绘制柱状图

瀑布式柱状图

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

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

# -*- 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使用Plotly绘图工具绘制柱状图

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

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

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

import plotly as py
import plotly.graph_objs as go
pyplt = py.offline.plot
 
# Customizing Individual 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使用Plotly绘图工具绘制柱状图

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

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
django之常用命令详解
Jun 30 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
python中删除某个元素的方法解析
Nov 05 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
Python SSL证书验证问题解决方案
Jan 13 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 Python
python使用Plotly绘图工具绘制水平条形图
Mar 25 #Python
Python进阶之@property动态属性的实现
Apr 01 #Python
彻底理解Python中的yield关键字
Apr 01 #Python
python抓取搜狗微信公众号文章
Apr 01 #Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 #Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 #Python
Python批量删除只保留最近几天table的代码实例
Apr 01 #Python
You might like
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
5.PHP的其他功能
2006/10/09 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
python实现的重启关机程序实例
2014/08/21 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
PHP如何调用MYSQL存储过程
2014/05/30 面试题
一些高难度的SQL面试题
2016/11/29 面试题
关于Assembly命名空间的三个面试题
2015/07/23 面试题
银行会计业务的个人自我评价
2013/11/02 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
办理护照介绍信
2014/01/16 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
民间借贷借条范本
2015/05/25 职场文书
个人催款函范文
2015/06/23 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
远程教育培训心得体会
2016/01/09 职场文书
Python Pandas 删除列操作
2022/03/16 Python