今天我们来讲一下如何使用Python使用Plotly绘图工具,绘制面积图

绘制面积图与绘制散点图和折线图的画法类似,使用plotly graph_objs

中的Scatter函数,不同之处在于面积图对fill属性的设置

也就是说,相当于是在折线图的基础上,对图形进行填充

import plotly as py
import plotly.graph_objs as go
import numpy as nppyplt = 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] + initial1initial2 = initial2*rd2[i] + initial2total1.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 nppyplt = 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] + initial1initial2 = initial2*rd2[i] + initial2total1.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模式,而绘制堆积面积图时则不需要

这就是堆积面积图需要累加数据的原因

在本质上,堆积面积图的堆积效果是在同一个图形中绘制对个面积图来实现

今天就讲到这里,谢谢大家阅读,感谢支持!谢谢点赞

转载于:https://www.cnblogs.com/ws17345067708/p/10653097.html

Python使用Plotly绘图工具,绘制面积图相关推荐

  1. python 画柱状图-python使用Plotly绘图工具绘制柱状图

    本文实例为大家分享了python使用Plotly绘图工具绘制柱状图的具体代码,供大家参考,具体内容如下 使用Plotly绘制基本的柱状图,需要用到的函数是graph_objs 中 Bar函数 通过参数 ...

  2. 用python画xy散点图-python使用Plotly绘图工具绘制散点图、线形图

    今天在研究Plotly绘制散点图的方法,供大家参考,具体内容如下 使用Python3.6 + Plotly Plotly版本2.0.0 在开始之前先说说,还需要安装库Numpy,安装方法在我的另一篇博 ...

  3. python 条形图-python使用Plotly绘图工具绘制水平条形图

    本文实例为大家分享了python绘制水平条形图的具体代码,供大家参考,具体内容如下 水平条形图与绘制柱状图类似,大家可以先看看我之前写的博客,如何绘制柱状图 水平条形图需要在Bar函数中设置orien ...

  4. python动态横道图_详细解说Python使用Plotly绘图工具,绘制甘特图

    今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...

  5. python绘制饼图-Python使用Plotly绘图工具,绘制饼图

    今天我们来学习一下如何使用Python的Plotly绘图工具,绘制饼图 使用Plotly绘制饼图的方法,我们需要使用graph_objs中的Pie函数 函数中最常用的两个属性values,用于赋值给需 ...

  6. python画直方图代码-Python使用Plotly绘图工具,绘制直方图

    今天我们再来讲解一下Python使用Plotly绘图工具如何绘制直方图 使用plotly绘制直方图需要用到graph_objs包中的Histogram函数 我们将数据赋值给函数中的x变量,x = da ...

  7. python画气泡图_python使用Plotly绘图工具绘制气泡图

    今天来讲讲如何使用Python 绘图工具,Plotly来绘制气泡图. 气泡图的实现方法类似散点图的实现.修改散点图中点的大小,就变成气泡图. 实现代码如下: import plotly as py i ...

  8. python随机画散点图-Python使用Plotly绘图工具,绘制散点图、线形图

    今天在研究Plotly绘制散点图的方法 使用Python3.6 + Plotly Plotly版本2.0.0 因为Plotly没有自己独立的线性图形函数,所以把线性图形与散点图形全部用一个函数实现 这 ...

  9. 如何用python绘图、柱形图、线形图等_python使用Plotly绘图工具绘制散点图、线形图...

    今天在研究Plotly绘制散点图的方法,供大家参考,具体内容如下 使用Python3.6 + Plotly Plotly版本2.0.0 在开始之前先说说,还需要安装库Numpy,安装方法在我的另一篇博 ...

最新文章

  1. FastReport.Net 入门
  2. iOS12-Swift5-Date转化为String:DateFormatter
  3. 阿里云MVP闪亮云栖大会,技术干货持续更新中
  4. lhgselect 联动选择下拉菜单 v1.0.0 (2011-06-13)
  5. vb microsoft.xmlhttp 获取所有超链接_利用VBA批量自动生成表格超链接
  6. QString 字符编码
  7. 【摘录】《程序设计导引及在线实践》之排列
  8. Differential Geometry之第八章常Gauss曲率曲面
  9. docker中安装了RabbitMQ后无法访问其Web管理页面
  10. 我一个月2000多元钱退休工资,可以完成自驾游全国的心愿吗?
  11. 编写lisp程序解一元二次方程_用C语言编写一程序求解一元二次方程的根。
  12. 【廖雪峰官方网站/Java教程】注解
  13. 代码审查的必要性和最佳实践
  14. 5分钟从零开始搭建一个独立博客网站
  15. 使用node爬取小说内容并保存到本地
  16. 多线程因__lll_unlock_elision 导致core
  17. 三个字母的单词颠倒也是单词_世界上最强大的两个字母的单词
  18. 视频搜索关键技术浅析
  19. correl函数_WPS表格办公— CORREL 函数的用法
  20. 张勋说:钢渣处理和综合利用的原因及效益分析

热门文章

  1. oracle 查看dba账户,Oracle DBA常用查询
  2. 自学前端到底要学什么?五年老前端现身说法
  3. 欲练JS,必先攻CSS——前端修行之路
  4. JAVA的多态的优劣,向上转型,向下转型什么意思?
  5. mysql 查看当前数据库编码_MySQL查看并修改当前数据库编码
  6. python 输出文字_Python中输出ASCII大文字、艺术字、字符字小技巧
  7. php 实现application,PHP中实现ASP中的Application 功能
  8. 安卓linux终端 计算,5种在Linux终端中进行算术运算的方法
  9. css设置按钮竖直方向居中_前端设计师必须知道的10个重要的CSS技巧
  10. vba传值调用_vba – 动态调用从形状OnAction属性传递参数的宏