Сохранение изображений в высоком разрешении с помощью 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)

который работал нормально для меня.

Другие вопросы по тегам