I have the following code which produces finance plot:
from pandas_datareader import data as web
import pandas as pd
import mplfinance as mpf
df = web.DataReader('goog','yahoo', start="2021-07-3", end="2021-09-12")
mpf.plot(df, style='charles', type = 'candle', volume=True, figratio=(12,8), title='large title', savefig = 'testimage.jpg')
But the image which it generated left a lot of space on all side, so i include the parameter tight_layout=True
however now i a getting an image which looks like this:
The title is inside the image. Could you advise how can i change the margin where the left and right are tight and title is on top. Also how can you add a secondary title to the image
Extra configuration can be passed to position the title when title option is passed as a dictionary.
For example,
config = dict(
style="charles",
type="candle",
volume=True,
figratio=(12,8),
title={"title": "large title", "y": 1},
tight_layout=True
)
fig = mpf.plot(df, **config)
To add a secondary title. You'll need control of the plot axis.
You can write:
ax1 = plt.axes([0,0,1,0.4])
ax1.set_title("Volume")
ax1.yaxis.set_label_position("right")
ax1.yaxis.tick_right()
ax2 = plt.axes([0,0.6,1,0.4])
ax2.set_title("Price")
ax2.yaxis.set_label_position("right")
ax1.yaxis.tick_right()
config = dict(
style="charles",
type="candle",
volume=ax1,
ax=ax2,
figratio=(12,8),
num_panels=2,
tight_layout=True
)
fig = mpf.plot(df, **config)