在python中以plotly的方式在金融图中添加阈值线

如何解决在python中以plotly的方式在金融图中添加阈值线

我正在 python 中的 Plotly 中绘制金融子图,我能够成功。但是我需要在第二个子图中绘制阈值线(水平线),但无法绘制相同的图。

但我能够在独立图中成功绘制阈值线。

我的具有三个阈值线的独立绘图代码

    fig = go.Figure(data=[go.Scatter(x=VipData['Date'],y=VipData['RSI5'],name='RSI5')])
fig.update_layout(
    title='VIP Stock',yaxis_title='Price',xaxis_title='Period',shapes=[# Top Threshold line
                        {
                            'type': 'line','xref': 'paper','x0': 0,'y0': 70,# use absolute value or variable here
                            'x1': 1,'y1': 70,# ditto
                            'line': {
                                'color': 'rgb(0,100,0)','width': 1,'dash': 'dash',},# Bottom Threshold Line
                        {
                            'type': 'line','y0': 30,'y1': 30,# ditto
                            'line': {
                                'color': 'rgb(255,# Middle Threshold Line
                        {
                            'type': 'line','y0': 50,'y1': 50,],xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,label="1m",step="month",stepmode="backward"),dict(count=6,label="6m",dict(count=1,label="YTD",step="year",stepmode="todate"),label="1y",dict(step="all")
            ])
        ),rangeslider=dict(
            visible=True
        ),type="date"
    )
)

fig.show()

enter image description here

以下是我的子图的代码:

fig = make_subplots(
    rows=2,cols=1,shared_xaxes=True,vertical_spacing=0.01,specs=[[{"type": "Candlestick"}],[{"type": "scatter"}]]
)

fig.add_trace(go.Candlestick(x=VipData['Date'].tail(30),open=VipData['Open'].tail(30),high=VipData['High'].tail(30),low=VipData['Low'].tail(30),close=VipData['Close'].tail(30),name='Candlestick'),row=1,col=1)

fig.add_trace(go.Scatter(x=VipData['Date'].tail(30),y=VipData['RSI5'].tail(30),name='RSI5'),row=2,col=1)


fig.update_layout(xaxis_rangeslider_visible=False)

enter image description here

我应该对代码进行哪些更改以绘制与第二个图(即第 2 行中的图)类似的三个阈值线。

感谢您的时间和指导。

问候 苏迪尔

添加根据@As11 共享的代码创建的图

enter image description here


样本数据

Index Date  Open    High    Low Close   Volume  RSI5    RSI7    RSI14   RSI20
4629    2021-02-24  381.899994  396.500000  366.200012  384.000000  432314  70.793970   68.529922   62.909907   60.583804
4630    2021-02-25  388.799988  403.500000  385.049988  391.799988  595109  78.694615   74.588730   66.485293   63.246338
4631    2021-02-26  389.950012  414.950012  381.000000  400.700012  1657646 84.626277   79.772785   70.034771   66.004475
4632    2021-03-01  409.399994  412.500000  396.000000  406.149994  1564155 87.327001   82.345797   71.990981   67.573037
4633    2021-03-02  408.350006  412.799988  396.049988  398.000000  974849  65.739595   67.389979   65.142286   62.997502
4634    2021-03-03  402.700012  418.000000  396.799988  408.549988  601591  75.528227   74.409265   69.223823   66.123166
4635    2021-03-04  410.000000  422.000000  406.799988  409.950012  1203652 76.635561   75.234577   69.730348   66.518241
4636    2021-03-05  416.799988  417.899994  400.950012  411.399994  757044  77.928511   76.163442   70.275987   66.938582
4637    2021-03-08  416.399994  416.399994  405.600006  409.299988  474313  70.832312   71.624317   68.354198   65.681480
4638    2021-03-09  412.500000  412.500000  400.100006  402.899994  447689  52.589322   59.100838   62.724568   61.949272
4639    2021-03-10  405.000000  405.000000  397.799988  401.000000  374909  48.001544   55.726081   61.115323   60.868426
4640    2021-03-12  403.000000  406.750000  390.000000  392.850006  387427  32.704021   43.340983   54.639686   56.423455
4641    2021-03-15  391.500000  392.000000  379.049988  384.200012  351942  22.985685   33.987634   48.737186   52.167366
4642    2021-03-16  386.500000  387.149994  376.450012  379.899994  398165  19.402892   30.206902   46.072717   50.186440
4643    2021-03-17  375.350006  388.899994  373.049988  380.450012  812165  21.362683   31.346550   46.475797   50.439827
4644    2021-03-18  387.000000  387.000000  366.250000  372.399994  282166  14.785330   24.512076   41.577488   46.774263
4645    2021-03-19  373.000000  381.250000  370.000000  376.250000  394137  28.032068   32.699461   44.585582   48.652822
4646    2021-03-22  379.750000  380.950012  371.000000  375.399994  257526  26.878940   31.810773   44.046361   48.256999
4647    2021-03-23  372.149994  382.000000  372.000000  373.149994  234016  23.658731   29.347633   42.578426   47.187317
4648    2021-03-24  373.149994  376.950012  361.000000  367.399994  571290  17.110434   23.843211   39.001213   44.531932
4649    2021-03-25  365.399994  366.750000  352.250000  357.299988  292795  10.642696   17.223262   33.652906   40.335152
4650    2021-03-26  363.500000  363.500000  348.000000  350.299988  260489  8.017250    14.065566   30.528256   37.740355
4651    2021-03-30  351.049988  356.950012  338.700012  347.250000  367289  7.067658    12.866452   29.253742   36.658738
4652    2021-03-31  349.000000  357.250000  347.500000  354.149994  248493  30.384842   28.871121   35.785243   40.705512
4653    2021-04-01  357.000000  361.200012  351.000000  354.450012  192683  31.321411   29.527758   36.061654   40.878392
4654    2021-04-05  354.450012  354.450012  339.000000  342.200012  275972  18.570212   20.508825   30.322389   36.326258
4655    2021-04-06  345.000000  348.799988  340.000000  343.399994  237563  22.436682   23.190015   31.472914   37.049091
4656    2021-04-07  343.700012  347.350006  340.200012  342.500000  232796  21.480478   22.525218   31.058690   36.719996
4657    2021-04-08  345.750000  347.000000  341.399994  343.600006  255827  26.280462   25.567863   32.232666   37.434998
4658    2021-04-09  345.399994  345.500000  340.000000  341.000000  144333  22.259995   23.069502   30.893569   36.411390

解决方法

我无法重现您的图表,因为我没有您正在使用的数据,但是根据我的了解,您应该能够通过执行与之前相同的操作来获得阈值线独立的情节。所以完整的代码应该是这样的:

fig = make_subplots(
rows=2,cols=1,shared_xaxes=True,vertical_spacing=0.01,specs=[[{"type": "Candlestick"}],[{"type": "scatter"}]]
)

fig.add_trace(go.Candlestick(x=VipData['Date'].tail(30),open=VipData['Open'].tail(30),high=VipData['High'].tail(30),low=VipData['Low'].tail(30),close=VipData['Close'].tail(30),name='Candlestick'),row=1,col=1)

fig.add_trace(go.Scatter(x=VipData['Date'].tail(30),y=VipData['RSI5'].tail(30),name='RSI5'),row=2,col=1)


fig.update_layout(xaxis_rangeslider_visible=False)

fig.update_layout(
    title='VIP Stock',yaxis_title='Price',xaxis_title='Period',shapes=[# Top Threshold line
                    {
                        'type': 'line','xref': 'paper','yref': 'y2','x0': 0,'y0': 70,# use absolute value or variable here
                        'x1': 1,'y1': 70,# ditto
                        'line': {
                            'color': 'rgb(0,100,0)','width': 1,'dash': 'dash',},# Bottom Threshold Line
                    {
                        'type': 'line','y0': 30,'y1': 30,# ditto
                        'line': {
                            'color': 'rgb(255,# Middle Threshold Line
                    {
                        'type': 'line','y0': 50,'y1': 50,],xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,label="1m",step="month",stepmode="backward"),dict(count=6,label="6m",dict(count=1,label="YTD",step="year",stepmode="todate"),label="1y",dict(step="all")
            ])
        ),rangeslider=dict(
            visible=True
        ),type="date"
    )
)

fig.show()

要在第二个子图上显示它,您必须在每个线条形状中添加 'yref':'y2',如上面的代码所示。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res