使用 python 中的绘图库进行烛台图表标记
candlestick chart markings using plotting libraries in python
我想知道使用哪个库在我的烛台图表上进行交互式标记。
比如下图中的
如您所见,我想根据某些条件添加向下的绿色箭头和向上的红色箭头。
您还可以看到蓝色和红色的水平线是我也想在图中添加的支撑阻力指标。
关于如何实现它的任何线索?
我从你发的图片猜到是plotly,所以我在plotly中画了一个烛台,并添加了一条线和一个字符串注释。例如,如果三角形串穿过前一天的底部,我将其设为绿色三角形,否则设为红色三角形。您还可以使用要显示的 X 和 Y 轴列表。
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
fig = go.Figure(data=[go.Candlestick(x=df['Date'][400:],
open=df['AAPL.Open'][400:], high=df['AAPL.High'][400:],
low=df['AAPL.Low'][400:], close=df['AAPL.Close'][400:])
])
fig.add_trace(go.Scatter(x=df['Date'][400:],
y=[df['AAPL.Low'][400:].min()]*len(df['Date'][400:]),
mode="lines",
line=dict(color='red', width=2)))
fig.add_trace(go.Scatter(x=df['Date'][400:],
y=[df['AAPL.High'][400:].min()]*len(df['Date'][400:]),
mode="lines",
line=dict(color='blue', width=2)))
last = 0
for i in range(len(df['Date'][400:])):
temp = df.loc[400+i:400+i,'AAPL.Low'].values[0]
if temp >= last:
fig.add_annotation(x=df.loc[400+i,'Date'], y=temp+3, text="▲", showarrow=False, font=dict(size=16, color='LightSeaGreen'))
last = temp
else:
fig.add_annotation(x=df.loc[400+i,'Date'], y=temp-3, text="▲", showarrow=False, font=dict(size=16, color='red'))
fig.update_layout(xaxis_rangeslider_visible=False)
fig.show()
我想知道使用哪个库在我的烛台图表上进行交互式标记。
比如下图中的
如您所见,我想根据某些条件添加向下的绿色箭头和向上的红色箭头。 您还可以看到蓝色和红色的水平线是我也想在图中添加的支撑阻力指标。
关于如何实现它的任何线索?
我从你发的图片猜到是plotly,所以我在plotly中画了一个烛台,并添加了一条线和一个字符串注释。例如,如果三角形串穿过前一天的底部,我将其设为绿色三角形,否则设为红色三角形。您还可以使用要显示的 X 和 Y 轴列表。
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
fig = go.Figure(data=[go.Candlestick(x=df['Date'][400:],
open=df['AAPL.Open'][400:], high=df['AAPL.High'][400:],
low=df['AAPL.Low'][400:], close=df['AAPL.Close'][400:])
])
fig.add_trace(go.Scatter(x=df['Date'][400:],
y=[df['AAPL.Low'][400:].min()]*len(df['Date'][400:]),
mode="lines",
line=dict(color='red', width=2)))
fig.add_trace(go.Scatter(x=df['Date'][400:],
y=[df['AAPL.High'][400:].min()]*len(df['Date'][400:]),
mode="lines",
line=dict(color='blue', width=2)))
last = 0
for i in range(len(df['Date'][400:])):
temp = df.loc[400+i:400+i,'AAPL.Low'].values[0]
if temp >= last:
fig.add_annotation(x=df.loc[400+i,'Date'], y=temp+3, text="▲", showarrow=False, font=dict(size=16, color='LightSeaGreen'))
last = temp
else:
fig.add_annotation(x=df.loc[400+i,'Date'], y=temp-3, text="▲", showarrow=False, font=dict(size=16, color='red'))
fig.update_layout(xaxis_rangeslider_visible=False)
fig.show()