Python使用Plotly绘图工具,绘制面积图
今天我们来讲一下如何使用Python使用Plotly绘图工具,绘制面积图
绘制面积图与绘制散点图和折线图的画法类似,使用plotly graph_objs
中的Scatter函数,不同之处在于面积图对fill属性的设置
也就是说,相当于是在折线图的基础上,对图形进行填充
import plotly as py
import plotly.graph_objs as go
import numpy as np pyplt = py.offline.plot # 随机生成100个交易日的收益率
s1 = np.random.RandomState(8) # 定义局部种子
s2 = np.random.RandomState(9) # 定义局部种子
rd1 = s1.rand(100)/10 - 0.02
rd2 = s2.rand(100)/10 - 0.02 # 设定初始资金
initial1 = 100000
initial2 = 100000
total1 = []
total2 = []
for i in range(len(rd1)):
initial1 = initial1*rd1[i] + initial1
initial2 = initial2*rd2[i] + initial2
total1.append(initial1)
total2.append(initial2) trace1 = go.Scatter(
# x = [1, 2, 3, 4],
y = total1,
fill = 'tonexty',
mode= 'none', # 无边界线
name = "策略1"
)
trace2 = go.Scatter(
# x = [1, 2, 3, 4],
y = total2,
fill = 'tozeroy',
mode= 'none',# 无边界线
name = "策略2"
) data = [trace1, trace2] layout = dict(title = '策略净值曲线',
xaxis = dict(title = '交易天数'),
yaxis = dict(title = '净值'),
)
fig = dict(data = data, layout = layout)
pyplt(fig, filename='tmp/1.html')

运行如上代码,会得到如上图所示的图形面积图
展示了两个不同的交易策略的净值曲线图,数据是随机生成的
就相当于做了折线图后,进行了填充得到
我们在来说一下内部填充面积图
内部填充面积图是仅仅填充两条曲线交叉所形成的面积部分,同样设置fill属性来完成。
只需要在原来的面积图上设置第一条曲线无填充效果即可
下面我们来看看代码
import plotly as py
import plotly.graph_objs as go
import numpy as np pyplt = py.offline.plot # 随机生成100个交易日的收益率
s1 = np.random.RandomState(8) # 定义局部种子
s2 = np.random.RandomState(9) # 定义局部种子
rd1 = s1.rand(100)/10 - 0.02
rd2 = s2.rand(100)/10 - 0.02 # 设定初始资金
initial1 = 100000
initial2 = 100000
total1 = []
total2 = []
for i in range(len(rd1)):
initial1 = initial1*rd1[i] + initial1
initial2 = initial2*rd2[i] + initial2
total1.append(initial1)
total2.append(initial2) trace1 = go.Scatter(
y = total1,
fill = None,
mode= 'lines', # 无边界线
name = "策略1"
)
trace2 = go.Scatter(
# x = [1, 2, 3, 4],
y = total2,
fill = 'tonexty',
mode= 'lines',# 无边界线
name = "策略2"
) data = [trace1, trace2] layout = dict(title = '策略净值曲线',
xaxis = dict(title = '交易天数'),
yaxis = dict(title = '净值'),
)
fig = dict(data = data, layout = layout)
pyplt(fig, filename='tmp/1.html')

运行上诉代码,我们可以得到如上图所示的内部填充面积图
我们设置了fill = None,
在设置第二条曲线的填充的效果为tonexty
即fill = 'tonexty' 即可得到如上图所示的图例
接下来我们讲解一下堆积面积图
堆积面积图与之前我写的博客中,层叠柱状图类似
都是展示了数据累加的效果
不同之处在于对数据的设置
import plotly as py
import plotly.graph_objs as go
data_1 = go.Scatter(
x = ['基金1', '基金2', '基金3', '基金4','基金5'],
y = [32.52, 43.12, 43.47, 44.36, 33.11],
name = '股票投资',
mode = 'lines',
line = dict(width=0.5,
color = 'rgb(184, 247, 212)'),
fill = 'tonexty'
) data_2 = go.Scatter(
x = ['基金1', '基金2', '基金3', '基金4','基金5'],
y = [63.24, 54.33, 74.28, 63.91, 63.11],
name = '其它投资',
mode = 'lines',
line = dict(width=0.5,
color = 'rgb(111, 231, 219)'),
fill = 'tonexty'
) data_3 = go.Scatter(
x = ['基金1', '基金2', '基金3', '基金4','基金5'],
y = [83.24, 74.33, 93.91, 79.22, 83.11],
name='债券投资',
mode='lines',
line=dict(width=0.5,
color='rgb(127, 166, 238)'),
fill='tonexty'
) data_4 = go.Scatter(
x = ['基金1', '基金2', '基金3', '基金4','基金5'],
y = [100, 100, 100, 100, 100],
name='银行存款',
mode='lines',
line=dict(width=0.5,
color='rgb(131, 90, 241)'),
fill='tonexty'
) data = [data_1, data_2, data_3, data_4] layout = go.Layout(
title = '基金资产配置比例图',
showlegend = True,
xaxis = dict(
type = 'category',
),
yaxis = dict(
type = 'linear',
range = [1, 100],
dtick = 20,
ticksuffix = '%'
)
) pyplt = py.offline.plot
fig = go.Figure(data = data, layout = layout)
pyplt(fig, filename = 'tmp/stacked-area-plot.html')

可以看到,运行上诉代码,可以得到如上图所示的堆积面积图图例
注意的是,在绘制层叠柱状图时需要设置stack模式,而绘制堆积面积图时则不需要
这就是堆积面积图需要累加数据的原因
在本质上,堆积面积图的堆积效果是在同一个图形中绘制对个面积图来实现
今天就讲到这里,谢谢大家阅读,感谢支持!谢谢点赞
Python使用Plotly绘图工具,绘制面积图的更多相关文章
- Python使用Plotly绘图工具,绘制直方图
今天我们再来讲解一下Python使用Plotly绘图工具如何绘制直方图 使用plotly绘制直方图需要用到graph_objs包中的Histogram函数 我们将数据赋值给函数中的x变量,x = da ...
- Python使用Plotly绘图工具,绘制饼图
今天我们来学习一下如何使用Python的Plotly绘图工具,绘制饼图 使用Plotly绘制饼图的方法,我们需要使用graph_objs中的Pie函数 函数中最常用的两个属性values,用于赋值给需 ...
- Python使用Plotly绘图工具,绘制甘特图
今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...
- Python使用Plotly绘图工具,绘制气泡图
今天来讲讲如何使用Python 绘图工具,Plotly来绘制气泡图. 气泡图的实现方法类似散点图的实现.修改散点图中点的大小,就变成气泡图. 实现代码如下: import plotly as py i ...
- Python使用Plotly绘图工具,绘制散点图、线形图
今天在研究Plotly绘制散点图的方法 使用Python3.6 + Plotly Plotly版本2.0.0 在开始之前先说说,还需要安装库Numpy,安装方法在我的另一篇博客中有写到:https:/ ...
- Python使用Plotly绘图工具,绘制水平条形图
水平条形图与绘制柱状图类似,大家可以先看看我之前写的博客,如何绘制柱状图 水平条形图需要在Bar函数中设置orientation= 'h' 其他的参数与柱状图相同.也可以通过设置barmode = ' ...
- Python使用Plotly绘图工具,绘制柱状图
使用Plotly绘制基本的柱状图,需要用到的函数是graph_objs 中 Bar函数 通过参数,可以设置柱状图的样式. 通过barmod进行设置可以绘制出不同类型的柱状图出来. 我们先来实现一个简单 ...
- Python绘制面积图
一.Python绘制面积图对应代码如下图所示 import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans ...
- 【python】pandas & matplotlib 数据处理 绘制曲面图
Python matplotlib模块,是扩展的MATLAB的一个绘图工具库,它可以绘制各种图形 建议安装 Anaconda后使用 ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择pytho ...
随机推荐
- renren-fast开源项目解析日志—1、项目的部署
renren_fast项目解析日志 一.环境搭建 1.后端部署 (1)下载源码 按照步骤,从码云上down了fast,zip的(引maven项目)项目包. (2)安装lombok插件 安装lombok ...
- NumPy 超详细教程(2):数据类型
系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 文章目录 NumPy 数据类型 ...
- Oracle 连接查询
1.什么是连接查询?(B) 很多时候我们需要查询的数据并不是来源于同一张表,而是来源于多张表,而这种一个查询需要对多张表进行操作,就成为连接查询. 2.如何进行表的连接查询? 连接查询有两种方式:SQ ...
- Java的内存泄露
Java的内存泄露 1.静态集合类引起内存泄漏 像HashMap.Vector等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,他们所引用的所有的对象Object也不能被释放,因为他们 ...
- SAP MM 预留单据的历史修改记录?
SAP MM 预留单据的历史修改记录? 在笔者眼里,SAP系统是一个高度严谨的软件系统.用户在SAP系统里的相关操作,系统都会做记录.用户对于系统的相关单据的增删改,SAP系统都有保留change h ...
- Nginx下载服务器配置文件
server { listen 8080; server_name localhost; #charset koi8-r; charset utf-8; #access_log logs/host.a ...
- c/c++ 网络编程 陈硕老师视频理解之ttcp
ttcp 是干啥的:测试2台机器间的网络传输性能 wiki 功能如下图: 对应的视频是: 4.回顾基础的Sockets API.mkv 5.TTCP代码概览.mkv 6.使用TTCP进行网络传输性能测 ...
- Cesium3DTileset示例
3D Tiles是Cesium中很核心的一部分,尤其是用来实现大范围的模型场景数据的加载应用. 三维倾斜模型.人工建模.BIM模型等等,都可以转换成3D Tiles,进而为我们所用. 从Cesium1 ...
- JAVA中AWT编程
JAVA使用AWT和Swing 类完成图形用户界面编程,AWT全称是抽象窗口工具集(Abstract Window Toolkit),它是最早的sun提供的GUI库(Graphics User Int ...
- Hadoop系列005-Hadoop运行模式(下)
本人微信公众号,欢迎扫码关注! Hadoop运行模式(下) 2.3.完全分布式部署Hadoop 1)分析: 1)准备3台客户机(关闭防火墙.静态ip.主机名称) 2)安装jdk 3)配置环境变量 4) ...