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 相关文章推荐
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
python定时执行指定函数的方法
May 27 Python
Python画图学习入门教程
Jul 01 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python实现求数列和的方法示例
Jan 12 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
python 美化输出信息的实例
Oct 15 Python
python基于递归解决背包问题详解
Jul 03 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php生成略缩图代码
2012/07/16 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
Django数据统计功能count()的使用
2020/11/30 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
家居装修公司创业计划书范文
2014/03/20 职场文书
经营管理策划方案
2014/05/22 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android