Как мне ограничить размер границы на графике matplotlib?
-
05-07-2019 - |
Вопрос
Я делаю несколько довольно больших графиков, и пробел на границе занимает много пикселей, которые будут лучше использоваться данными. Кажется, что граница растет с ростом графика.
Вот основные принципы моего графического кода:
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)
Есть ли способ уменьшить размер границы? Может быть, установка где-нибудь, которая позволила бы мне держать границу на постоянном 2 дюйма или около того? Р>
Решение
Поскольку создается впечатление, что вы используете только один подзаговор, вы можете пропустить add_subplot
и перейти прямо к add_axes
. Это позволит вам указать размер осей (в относительных координатах фигуры), чтобы вы могли сделать его настолько большим, насколько вы хотите, внутри фигуры. В вашем случае это будет означать, что ваш код будет выглядеть примерно так
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)
Если вы хотите, вы можете даже поместить параметры в set_figheight
/ set_figwidth
непосредственно в вызове figure ()
.
Другие советы
Попробуйте subplots_adjust
a> API:
subplots_adjust (* args, ** kwargs)
fig.subplots_adjust (слева = нет, снизу = нет, справа = нет, wspace = нет, hspace = нет)
Обновите SubplotParams с помощью kwargs (по умолчанию rc, где None) и обновите местоположения подзаговоров