13

我正在尝试使用 plotnine 来保存高分辨率的 png 图像。

使用测试数据集,这看起来像:

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=1000res=1000. 这会产生相同的低分辨率 png 文件。

如何以我想要的分辨率保存我的绘图?

编辑:此错误已在 plotnine 0.3.0 版中解决。并且上面的代码可以正常工作。

4

2 回答 2

11

由于这仍然没有得到回答,我也刚刚被指示到这里......

根据@has2k1(的作者plotnine)的说法,这是一个错误,现在已解决。这个提交看起来可能是引用的修复。

要解决此问题,请确保您使用的是 git 版本或至少0.3.0 版本

于 2018-08-26T16:31:15.253 回答
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)

这对我来说没问题。

于 2022-01-22T21:23:07.523 回答