Сохранение изображений в высоком разрешении с помощью plotnine
Я пытаюсь использовать plotnine, чтобы сохранить изображение в высоком разрешении.
С набором тестовых данных это выглядит так:
from plotnine import *
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['x'] = np.arange(0,10,0.01)
df['y'] = np.sin(df['x'])
p = ggplot(df, aes(x='x',y='y')) + labs(x='x', y='y') + geom_point(size=0.1)
p.save(filename = 'test3.png', height=5, width=5, units = 'in', dpi=1000)
В результате получается файл.png с низким разрешением, содержащий мой график, который не улучшается при увеличении указанного значения dpi.
Я также попытался сохранить с помощью:
ggsave(plot=p, filename='test.png', dpi=1000)
и замена dpi=1000
с res=1000
, Это производит идентичные файлы PNG с низким разрешением.
Как я могу сохранить свой сюжет в нужном разрешении?
Редактировать: эта ошибка устранена в plotnine версии 0.3.0. и приведенный выше код работает правильно.
2 ответа
Так как до сих пор нет ответа, и меня тоже направили сюда...
По словам @has2k1 (автор plotnine
), это была ошибка, и теперь она устранена. Этот коммит выглядит так, как будто это исправление, на которое ссылаются.
Чтобы решить эту проблему, убедитесь, что вы используете версию git или хотя бы версию 0.3.0.
Также есть возможность сохранить рисунок matplotlib
import plotnine as pn
fig, plot = (pn.ggplot()
+ ...
+ pn.theme(panel_background=pn.element_blank())
+ pn.theme(axis_title_y=pn.element_blank())
+ pn.theme(axis_ticks_major_y=pn.element_blank())
+ pn.theme(figure_size=(12, 8))
).draw(show=False, return_ggplot=True)
fig.savefig('image.png', dpi=300)
который работал нормально для меня.