Matplotlib / Mplfinance 'y_on_right' 的正确用法?
Matplotlib / Mplfinance Correct usage of 'y_on_right'?
使用 Mplfinance. I am hoping someone can clarify the correct usage of the 'y_on_right' parameter. I believe I am using mpf.make_addplot() correctly but it will not move the y axis to the other side of the chart. Using the docs 提供。 TIA.
mpf.make_addplot(
df['sentiment'],
type='line',
ax=ax3,
y_on_right=True,
ylabel='Sentiment',
color='#6f2d84'
)]
编辑:添加代码的工作示例。
def makeCharts_CountsOHLC(self, props):
fig = props['fig']
df = props['df']
symbol = props['symbol']
start = props['min_date']
end = props['max_date']
# Configure the axes
ax1 = fig.add_subplot(5,1,(1,2))
ax2 = fig.add_subplot(5,1,3, sharex=ax1)
ax3 = fig.add_subplot(5,1,4, sharex=ax1)
ax4 = fig.add_subplot(5,1,5, sharex=ax1)
# Create add plots
aps = [
mpf.make_addplot(
df['count_s'],
ax=ax2,
ylabel='Tweets',
),
mpf.make_addplot(
df['sentiment'],
type='bar',
ax=ax3,
ylabel='Sentiment',
)]
ax1.tick_params(labelbottom=False)
ax2.tick_params(labelbottom=False)
ax3.tick_params(labelbottom=False)
# Functions to add a day to date and format dates
date_p1 = lambda x: dt.strftime(pd.to_datetime(x) + td(days=1), '%d %b %y')
fmt_date = lambda x: dt.strftime(pd.to_datetime(x), '%d %b %y')
title = f'{symbol} Price and Volume Traded from {fmt_date(start)} until {date_p1(end)}'
# Plot the chart
mpf.plot(
df,
type='candle',
ax = ax1,
volume = ax4,
addplot = aps,
xrotation = 0,
datetime_format = '%b %d',
axtitle = title,
ylabel = 'Price ($USD)',
tight_layout = True
)
# Format the prive of the y axis
mkfunc = lambda x, pos: '%1.1fM' % (x * 1e-6) if x >= 1e6 else '%1.1fK' % (x * 1e-3) if x >= 1e3 else '%1.1f' % x
mkformatter = matplotlib.ticker.FuncFormatter(mkfunc)
ax1.yaxis.set_major_formatter(mkformatter)
# Adjustments to plot and save
plt.subplots_adjust(hspace=0)
plt.savefig(fname=props['save_path'], dpi=self.cconf.get('RESOLUTION'))
plt.close('all')
fig.clear()
外轴模式不支持y_on_right
。
如果您想改变特定轴的方向,可以直接进行:
ax3.yaxis.set_label_position("right")
ax3.yaxis.tick_right()
至于mplfinance中的y_on_right,默认为false,一直显示在右侧。这是为了在烛台上添加移动平均线时使主轴向左,例如,当有两个轴时。作为示例,我绘制了一个类似于您对一只股票的输出的附加图。推文的数量未知,所以我用音量代替。要保存图形,请创建保存信息并将其包含在主图形代码中。
import mplfinance as mpf
import matplotlib.pyplot as plt
import yfinance as yf
symbol = "AAPL"
start, end = "2021-01-01", "2021-07-01"
data = yf.download("AAPL", start=start, end=end)
title = f'\n{symbol} Price and Volume Traded \nfrom {start} until {end}'
apds = [mpf.make_addplot(data.Volume, type='bar', panel=1, ylabel='Tweet', y_on_right=False),
mpf.make_addplot(data.Close, type='line', mav=(20,50), panel=2, ylabel='EMA', y_on_right=True),
mpf.make_addplot(data.Volume, type='bar', panel=3, ylabel='Volume', y_on_right=False)
]
save = dict(fname='test_mpl_save.jpg',dpi=150, pad_inches=0.25)
mpf.plot(data,
type='candle',
addplot=apds,
volume=False,
ylabel='Price ($USD)',
style='starsandstripes',
title=title, datetime_format=' %a %d',
#savefig=save
)
y_on_right
是多个 mplfinance 功能之一,在外轴模式下不可用。
你可以see the code here。由于各种原因,某些功能在外轴模式下必然不可用,但主要是所有这些功能都与 mplfinance 在外轴模式下无法完全控制轴这一事实有关。
虽然 mplfinance 确实会针对 某些 功能发出警告,但如果您尝试在外轴模式下使用它们,则很难确保代码包含以下警告外轴模式不支持的所有此类功能。希望将来如果您尝试在外轴模式下使用这些功能,所有这些功能都会包含警告。
与此同时,请注意 mplfinance documentation 强烈反对使用外轴模式 除非您试图完成其他任何方式无法完成的事情方式。
郑重声明,在撰写本文时,所有 发布在 上的情节图像都是 mplfinance 可以做的类型 无需求助于外轴模式。
完全披露:我是the mplfinance package的维护者。
P.S。如果您确实选择使用外轴模式,那么 是正确的方法。
P.P.S。我已经开始记录 list of features not supported in External Axes Mode.
使用 Mplfinance. I am hoping someone can clarify the correct usage of the 'y_on_right' parameter. I believe I am using mpf.make_addplot() correctly but it will not move the y axis to the other side of the chart. Using the docs 提供。 TIA.
mpf.make_addplot(
df['sentiment'],
type='line',
ax=ax3,
y_on_right=True,
ylabel='Sentiment',
color='#6f2d84'
)]
编辑:添加代码的工作示例。
def makeCharts_CountsOHLC(self, props):
fig = props['fig']
df = props['df']
symbol = props['symbol']
start = props['min_date']
end = props['max_date']
# Configure the axes
ax1 = fig.add_subplot(5,1,(1,2))
ax2 = fig.add_subplot(5,1,3, sharex=ax1)
ax3 = fig.add_subplot(5,1,4, sharex=ax1)
ax4 = fig.add_subplot(5,1,5, sharex=ax1)
# Create add plots
aps = [
mpf.make_addplot(
df['count_s'],
ax=ax2,
ylabel='Tweets',
),
mpf.make_addplot(
df['sentiment'],
type='bar',
ax=ax3,
ylabel='Sentiment',
)]
ax1.tick_params(labelbottom=False)
ax2.tick_params(labelbottom=False)
ax3.tick_params(labelbottom=False)
# Functions to add a day to date and format dates
date_p1 = lambda x: dt.strftime(pd.to_datetime(x) + td(days=1), '%d %b %y')
fmt_date = lambda x: dt.strftime(pd.to_datetime(x), '%d %b %y')
title = f'{symbol} Price and Volume Traded from {fmt_date(start)} until {date_p1(end)}'
# Plot the chart
mpf.plot(
df,
type='candle',
ax = ax1,
volume = ax4,
addplot = aps,
xrotation = 0,
datetime_format = '%b %d',
axtitle = title,
ylabel = 'Price ($USD)',
tight_layout = True
)
# Format the prive of the y axis
mkfunc = lambda x, pos: '%1.1fM' % (x * 1e-6) if x >= 1e6 else '%1.1fK' % (x * 1e-3) if x >= 1e3 else '%1.1f' % x
mkformatter = matplotlib.ticker.FuncFormatter(mkfunc)
ax1.yaxis.set_major_formatter(mkformatter)
# Adjustments to plot and save
plt.subplots_adjust(hspace=0)
plt.savefig(fname=props['save_path'], dpi=self.cconf.get('RESOLUTION'))
plt.close('all')
fig.clear()
外轴模式不支持y_on_right
。
如果您想改变特定轴的方向,可以直接进行:
ax3.yaxis.set_label_position("right")
ax3.yaxis.tick_right()
至于mplfinance中的y_on_right,默认为false,一直显示在右侧。这是为了在烛台上添加移动平均线时使主轴向左,例如,当有两个轴时。作为示例,我绘制了一个类似于您对一只股票的输出的附加图。推文的数量未知,所以我用音量代替。要保存图形,请创建保存信息并将其包含在主图形代码中。
import mplfinance as mpf
import matplotlib.pyplot as plt
import yfinance as yf
symbol = "AAPL"
start, end = "2021-01-01", "2021-07-01"
data = yf.download("AAPL", start=start, end=end)
title = f'\n{symbol} Price and Volume Traded \nfrom {start} until {end}'
apds = [mpf.make_addplot(data.Volume, type='bar', panel=1, ylabel='Tweet', y_on_right=False),
mpf.make_addplot(data.Close, type='line', mav=(20,50), panel=2, ylabel='EMA', y_on_right=True),
mpf.make_addplot(data.Volume, type='bar', panel=3, ylabel='Volume', y_on_right=False)
]
save = dict(fname='test_mpl_save.jpg',dpi=150, pad_inches=0.25)
mpf.plot(data,
type='candle',
addplot=apds,
volume=False,
ylabel='Price ($USD)',
style='starsandstripes',
title=title, datetime_format=' %a %d',
#savefig=save
)
y_on_right
是多个 mplfinance 功能之一,在外轴模式下不可用。
你可以see the code here。由于各种原因,某些功能在外轴模式下必然不可用,但主要是所有这些功能都与 mplfinance 在外轴模式下无法完全控制轴这一事实有关。
虽然 mplfinance 确实会针对 某些 功能发出警告,但如果您尝试在外轴模式下使用它们,则很难确保代码包含以下警告外轴模式不支持的所有此类功能。希望将来如果您尝试在外轴模式下使用这些功能,所有这些功能都会包含警告。
与此同时,请注意 mplfinance documentation 强烈反对使用外轴模式 除非您试图完成其他任何方式无法完成的事情方式。
郑重声明,在撰写本文时,所有 发布在
完全披露:我是the mplfinance package的维护者。
P.S。如果您确实选择使用外轴模式,那么
P.P.S。我已经开始记录 list of features not supported in External Axes Mode.