Следующий пример кода произведет основной линейный график без осей и сохранит его как файл SVG:
import matplotlib.pyplot as plt
plt.axis('off')
plt.plot([1,3,1,2,3])
plt.plot([3,1,1,2,1])
plt.savefig("out.svg", transparent = True)
Как я устанавливаю разрешение / размеры изображения? Там дополняет на всех сторонах изображения вне линейного графика. Как я удаляю дополнение так, чтобы строки появились на краю изображения?
Я постоянно поражаюсь тому, сколько способов сделать то же самое в matplotlib.
Таким образом, я уверен, что кто-то сможет сделать этот код более лаконичным.
Во всяком случае, это должно четко продемонстрировать, как решать вашу проблему.
>>> import pylab
>>> fig = pylab.figure()
>>> pylab.axis('off')
(0.0, 1.0, 0.0, 1.0)
>>> pylab.plot([1,3,1,2,3])
[<matplotlib.lines.Line2D object at 0x37d8cd0>]
>>> pylab.plot([3,1,1,2,1])
[<matplotlib.lines.Line2D object at 0x37d8d10>]
>>> fig.get_size_inches() # check default size (width, height)
array([ 8., 6.])
>>> fig.set_size_inches(4,3)
>>> fig.get_dpi() # check default dpi (in inches)
80
>>> fig.set_dpi(40)
# using bbox_inches='tight' and pad_inches=0
# I managed to remove most of the padding;
# but a small amount still persists
>>> fig.savefig('out.svg', transparent=True, bbox_inches='tight', pad_inches=0)
Документация для savefig ()
.
Объект оси по умолчанию оставляет место для заголовков, меток и т.п. Создайте свой собственный объект оси, который заполняет всю область:
fig=figure()
ax=fig.add_axes((0,0,1,1))
ax.set_axis_off()
ax.plot([3,1,1,2,1])
ax.plot([1,3,1,2,3])
fig.savefig('out.svg')
В формате svg я не вижу строку, которая находится прямо внизу, но в формате png я вижу, так что это, вероятно, особенность средства визуализации svg. Вы можете добавить немного отступов, чтобы все было видно.