matplotlib / mplfinance

Financial Markets Data Visualization using Matplotlib
https://pypi.org/project/mplfinance/
Other
3.52k stars 612 forks source link

Feature Request: to show only specific figure created in `plotting.py` instead of using `plt.show` we use `fig.show`. #510

Open anbarief opened 2 years ago

anbarief commented 2 years ago

Running the code below, Python will pop up the window (figure) created in plotting.py and also the userfig window I created independently in this piece of code. Usually if people want to show the userfig they can just run userfig.show().

userfig,ax = plt.subplots() #I want the userfig to be only showed when I use userfig.show()

dataset = pd.read_csv('data.csv', index_col=0, parse_dates= True)
n = len(dataset)

mpf.plot(dataset, type='candle', style='yahoo')

This is due to in plotting.py it uses plt.show (which shows all figures created in your Python code, including outside the plotting.py) instead of specific figure fig.show to show only the figure created in plotting.py. The downside of using fig.show is that it does not have block argument, but i think this is not a problem, since the user can use plt.show independently outside the plotting.py if he needs the block. I propose this change in plotting.py:

BEFORE: Capture2

AFTER: Capture

DanielGoldfarb commented 2 years ago

This is a very interesting idea. At first glance I like it. Will look into it further to make sure there are no unintended consequences. Thanks for the suggustion.