【问题标题】:Saving high-resolution images with plotnine使用 plotnine 保存高分辨率图像
【发布时间】:2018-01-18 23:32:39
【问题描述】:

我正在尝试使用 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=1000 替换为res=1000。这会生成相同的低分辨率 png 文件。

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

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

【问题讨论】:

  • 低分辨率是什么意思?请注意,如果 dpi 为 1000,您的意思是我想要一张可以 1000 dpi 打印或在高分辨率显示器上看起来不错的图像。除了一些 dpi(大约 300)之外,您很可能会创建专门用于打印的图像。查看graphicdesign.stackexchange.com/questions/36683/…
  • 无论我指定 100、300 还是 2000,保存的图像都在 dpi 100 左右。我正在寻找大约 300 dpi 的最终图像。
  • 更新到最新版本的plotnine。您遇到了一个已修复的错误。
  • 已解决,谢谢!我在遇到这个问题之前更新了 plotnine。我用的是: $ conda update plotnine 其中安装的是0.2.1版本,没有看到0.3.0版本。添加 conda-forge: $ conda config --add channels conda-forge 允许 conda 更新查看并安装最新版本的 plotnine,修复了该错误。我现在看到了漂亮的可变分辨率图。
  • SO 认为一个问题是“开放的”,直到一个答案被接受或至少有一个投票赞成的答案。由于上述内容对您有用,您可以回答您自己的问题,或者删除,因为该错误已修复,因此其他人不太可能有这个问题。 :-)

标签: python ggplot2 plotnine


【解决方案1】:

因为这仍然没有得到回答,我也只是被指示到这里......

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

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

【讨论】:

    【解决方案2】:

    还有保存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)
    

    这对我来说没问题。

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 2016-12-18
      • 2014-10-03
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2013-04-11
      相关资源
      最近更新 更多