python - 填补烛台图范围突破之间的空白
问题描述
我有一个包含财务数据的数据框。我正在使用 Plotly 创建烛台布局,并希望结合一些其他指标来帮助诊断价格范围。
样本数据帧数据(df):
Open High Low Close Volume \
DATE
2017-09-25 10:00:00 249.2800 249.3700 249.2800 249.370 19123.0
2017-09-25 11:00:00 249.3900 249.4500 249.3400 249.400 40853.0
2017-09-25 12:00:00 249.4500 249.4500 249.1400 249.170 153004.0
2017-09-25 13:00:00 249.1700 249.3400 249.0500 249.230 3963325.0
2017-09-25 14:00:00 249.2201 249.5532 248.5700 248.605 10122404.0
2017-09-25 15:00:00 248.6000 248.8200 248.0800 248.530 9098104.0
2017-09-25 16:00:00 248.5400 248.7950 248.1600 248.695 5550874.0
2017-09-25 17:00:00 248.6900 248.8800 248.5600 248.720 3687280.0
2017-09-25 18:00:00 248.7300 248.8500 248.3800 248.650 5779563.0
2017-09-25 19:00:00 248.6600 249.0100 248.5300 248.940 10731186.0
2017-09-25 20:00:00 248.9400 249.3600 248.9300 249.330 5970611.0
2017-09-25 21:00:00 249.3300 249.3500 248.7074 249.330 125453.0
2017-09-25 22:00:00 249.3400 249.3700 249.2800 249.300 65436.0
2017-09-25 23:00:00 249.3000 249.3200 249.1500 249.230 79118.0
2017-09-26 08:00:00 249.2600 249.2600 249.0500 249.140 18100.0
2017-09-26 09:00:00 249.1700 249.2300 249.1700 249.230 1000.0
2017-09-26 10:00:00 249.2200 249.2700 249.2000 249.210 13173.0
2017-09-26 11:00:00 249.1300 249.2300 249.0200 249.150 102716.0
2017-09-26 12:00:00 249.1400 249.3900 249.0100 249.370 262505.0
2017-09-26 13:00:00 249.3600 249.7000 249.3100 249.570 4968021.0
2017-09-26 14:00:00 249.5800 249.6700 249.1100 249.140 5959137.0
2017-09-26 15:00:00 249.1400 249.1950 248.8050 249.150 4724855.0
2017-09-26 16:00:00 249.1500 249.3256 248.9900 249.190 5557655.0
2017-09-26 17:00:00 249.1800 249.4900 249.1600 249.420 3901895.0
2017-09-26 18:00:00 249.4200 249.4800 249.1700 249.240 5939215.0
2017-09-26 19:00:00 249.2400 249.4400 248.9000 249.050 10846907.0
2017-09-26 20:00:00 249.0700 249.2893 248.9700 249.040 8378370.0
2017-09-26 21:00:00 249.0100 249.0600 248.9800 249.010 46410.0
2017-09-26 22:00:00 249.0100 249.0500 248.9600 249.000 30602.0
2017-09-26 23:00:00 249.0100 249.0800 249.0100 249.080 17352.0
ema \
DATE
2017-09-25 10:00:00 NaN
2017-09-25 11:00:00 NaN
2017-09-25 12:00:00 NaN
2017-09-25 13:00:00 NaN
2017-09-25 14:00:00 NaN
2017-09-25 15:00:00 NaN
2017-09-25 16:00:00 NaN
2017-09-25 17:00:00 NaN
2017-09-25 18:00:00 NaN
2017-09-25 19:00:00 NaN
2017-09-25 20:00:00 NaN
2017-09-25 21:00:00 NaN
2017-09-25 22:00:00 NaN
2017-09-25 23:00:00 NaN
2017-09-26 08:00:00 NaN
2017-09-26 09:00:00 NaN
2017-09-26 10:00:00 NaN
2017-09-26 11:00:00 NaN
2017-09-26 12:00:00 NaN
2017-09-26 13:00:00 249.108500
2017-09-26 14:00:00 249.111500
2017-09-26 15:00:00 249.115167
2017-09-26 16:00:00 249.122294
2017-09-26 17:00:00 249.150647
2017-09-26 18:00:00 249.159156
2017-09-26 19:00:00 249.148761
2017-09-26 20:00:00 249.138402
2017-09-26 21:00:00 249.126174
2017-09-26 22:00:00 249.114157
2017-09-26 23:00:00 249.110904
kc_upper
DATE
2017-09-25 10:00:00 NaN
2017-09-25 11:00:00 NaN
2017-09-25 12:00:00 NaN
2017-09-25 13:00:00 NaN
2017-09-25 14:00:00 NaN
2017-09-25 15:00:00 NaN
2017-09-25 16:00:00 NaN
2017-09-25 17:00:00 NaN
2017-09-25 18:00:00 NaN
2017-09-25 19:00:00 NaN
2017-09-25 20:00:00 NaN
2017-09-25 21:00:00 NaN
2017-09-25 22:00:00 NaN
2017-09-25 23:00:00 NaN
2017-09-26 08:00:00 NaN
2017-09-26 09:00:00 NaN
2017-09-26 10:00:00 NaN
2017-09-26 11:00:00 NaN
2017-09-26 12:00:00 NaN
2017-09-26 13:00:00 249.108500
2017-09-26 14:00:00 249.111500
2017-09-26 15:00:00 249.115167
2017-09-26 16:00:00 249.122294
2017-09-26 17:00:00 249.150647
2017-09-26 18:00:00 249.159156
2017-09-26 19:00:00 249.148761
2017-09-26 20:00:00 249.138402
2017-09-26 21:00:00 249.126174
2017-09-26 22:00:00 249.114157
2017-09-26 23:00:00 249.110904
然后我有以下代码:
import pandas as pd
import plotly.graph_objs as go
data = [go.Candlestick(x=df.index, open=df['Open'], high=df['High'], low=df['Low'], close=df['Close'])]
fig = go.Figure(data=data)
fig.update_layout(xaxis_rangeslider_visible=False)
fig.add_scatter(x=df.index, y=df['ema'], mode='lines')
fig.add_scatter(x=df.index, y=df['kc_lower'], mode='lines')
fig.update_xaxes(rangebreaks=[
dict(bounds=["sat", "mon"]), # hide weekends, apparently?
dict(bounds=[16, 8], pattern="hour"),
]
)
fig.show()
这会产生以下图像:
但是,线路和数据“跳跃”。如何平滑这条线和数据以隐藏市场关闭的所有时间,同时确保图中的线对于线和烛台布局都是连续的?
先感谢您。
解决方案
推荐阅读
- c# - 在 ListView SubiIems 中添加和存储 400 多行字符串
- oracle - GoldenGate SPECIALRUN 异常异常 [OGG-02419] 缺少检查点文件名
- javascript - 为什么我的数组中出现元素后显示为空?
- html - 无法嵌入 youtube 视频(Cookie 错误:samesite 属性)
- powershell - PowerShell 中的内存泄漏在连续运行中
- android - 如何为某个小部件 Flutter 指定拖动目标(单个 Draggable 被放入 3 个拖动目标而不是 1 个)
- r - 从R中的mongodb查询多个ID
- swift - 将带有字符串中数字的 XML 响应转换为 Int Swift
- binance - 无法在 Binance 的 Spot Test Network 上进行 MARKET 订单。返回空 JSON
- java - 让所有其他线程等到一个线程完成