python柱状图第四节(python使用Plotly绘图工具绘制柱状图)
python柱状图第四节
python使用Plotly绘图工具绘制柱状图本文实例为大家分享了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' ) |
上面这个例子,就是一个简单的柱状图。
下面我们讲下另外一种图,柱状簇
实现过程则是,在基本的柱状图中,加入多租数据即可实现,柱状簇
|
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' ) |
执行上述代码,我们可以看到如上图所示柱状簇图例
可将数据堆叠生成。
接下来在讲讲如何绘制层叠柱状图
层叠柱状图的绘制方法与柱状簇的绘制方法基本差不多
也就是对同一个柱状簇进行叠加,实现方法是对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' ) |
瀑布式柱状图
瀑布式柱状图是层叠柱状图的另外一种表现
可以选择性地显示层叠部分来实现柱状图的悬浮效果。
|
# -*- 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' ) |
运行上述代码,可以得到如上图所示的瀑布式柱状图。
下面我们说说,图形样式的设置。
对于柱状图颜色与样式的设置可以通过设置下面这个案例来说明。
|
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' ) |
运行上述代码,可以看到上图所示图例
柱状图展示了5种金属,在某个交易日的最高涨幅与波动率情况,柱形图宽度表示相对波动率的高低。
柱形图越宽,波动率越大,高度表示涨幅,红色表示上涨,绿色表示下跌。
用line设置柱状图外部线框,用width设置柱状图的宽度,用opacity设置柱状图颜色的透明度情况。
基本的柱状图情况,就讲到这里。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/u012798683/article/details/88800743
- python 接口测试怎么校验json数据(python接口自动化十七--Json 数据处理---一次爬坑记详解)
- python调用elasticsearch(Python-ElasticSearch搜索查询的讲解)
- pythondocx安装教程(Python docx库用法示例分析)
- python的turtle库怎么进入(python的turtle库使用详解)
- python变量指向讲解(详解python中init方法和随机数方法)
- python如何将xls转成xlsx(Python这样操作能存储100多万行的xlsx文件)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- python基本运算符编程(对Python3 * 和 ** 运算符详解)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- python6个基础数据类型(计算机二级python学习教程3 python语言基本数据类型)
- python 正则表达式在代码里的使用(python中正则表达式与模式匹配)
- python自己做个定时器(对python周期性定时器的示例详解)
- python怎么提取微信数据(使用Python+wxpy 找出微信里把你删除的好友实例)
- python中mod函数的使用方法(详解Python3中ceil函数用法)
- python操作json格式(详解python 3.6 安装json 模块simplejson)
- python淘宝秒杀教程(Python实现京东秒杀功能代码)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
- 你好,新成理人丨成都理工大学2019级新生开学典礼隆重举行(新成理人丨成都理工大学2019级新生开学典礼隆重举行)
热门推荐
- mysqldump导入导出(MySQL官方导出工具mysqlpump的使用)
- dedecms无缩略图怎么设置(dedecmsV5.7版 tag标签长度的修改方法详解)
- mysql自增锁(深入剖析 MySQL 自增锁)
- 图解ftp服务器搭建(三分钟配置一个FTP服务器)
- mysql类型转换函数推荐(mysql 数据类型转换的实现)
- Sql Server判断函数、存储过程等是否存在
- python中怎么输入单引号(python三引号输出方法)
- dedecms如何更改主页模板(织梦dedecms sitemap路径修改方法)
- laravelblade界面(laravel5.1框架基础之Blade模板继承简单使用方法分析)
- 如何用python人脸识别(Python学习笔记之视频人脸检测识别实例教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9