Wie begrenzen wir die Grenze Größe auf einem matplotlib Graph?
-
05-07-2019 - |
Frage
Ich mache einige ziemlich große Grafiken und die Leerzeichen in der Grenze ist eine Menge von Pixeln aufzunehmen, die besser von Daten verwendet würden. Es scheint, dass die Grenze wächst wie der Graph wächst.
Hier sind die Eingeweide meines Grafikcode:
import matplotlib
from pylab import figure
fig = figure()
ax = fig.add_subplot(111)
ax.plot_date((dates, dates), (highs, lows), '-', color='black')
ax.plot_date(dates, closes, '-', marker='_', color='black')
ax.set_title('Title')
ax.grid(True)
fig.set_figheight(96)
fig.set_figwidth(24)
Gibt es eine Möglichkeit, die Größe der Grenze zu verringern? Vielleicht irgendwo eine Einstellung, die mir erlauben würde, die Grenze bei konstant 2 Zoll zu halten oder so?
Lösung
Da es so aussieht, sind Sie nur einen einzigen subplot verwenden, können Sie add_subplot
überspringen wollen und fahren Sie geradeaus auf add_axes
. Dies ermöglicht es Ihnen, die Größe der Achsen (in figur relativen Koordinaten) zu geben, so können Sie es so groß ist, wie Sie in der Abbildung wollen. In Ihrem Fall würde dies bedeuten, Ihr Code etwas aussehen würde
import matplotlib.pyplot as plt
fig = plt.figure()
# add_axes takes [left, bottom, width, height]
border_width = 0.05
ax_size = [0+border_width, 0+border_width,
1-2*border_width, 1-2*border-width]
ax = fig.add_axes(ax_size)
ax.plot_date((dates, dates), (highs, lows), '-', color='black')
ax.plot_date(dates, closes, '-', marker='_', color='black')
ax.set_title('Title')
ax.grid(True)
fig.set_figheight(96)
fig.set_figwidth(24)
Wenn Sie möchten, können Sie auch die Parameter setzen / set_figheight
set_figwidth
direkt im figure()
Aufruf.
Andere Tipps
Versuchen Sie, die subplots_adjust
API:
subplots_adjust (* args, ** kwargs)
fig.subplots_adjust (links = None, unten = None, rechts = None, wspace = None, hspace = None)
Aktualisieren Sie die SubplotParams mit kwargs (säumigen wo keine rc) und aktualisieren Sie die subplot Standorte