1

我一直在尝试使用 plotnine 进行绘图,据我所知,它是 Python 中最具 ggplot2 风格的库,但我很难在 Python 脚本中的 PyCharm 中完成它。这似乎是一个问题,对于 matplotlib 和其他也遇到此错误的绘图库有许多解决方案,但是使用它们的答案(添加DISPLAY=True到环境变量,show()在绘图末尾添加等)不适用于 plotnine。

我正在尝试绘制以下内容,它适用于常规 ipython 窗口(我通过终端访问):

from plotnine import *
from plotnine.data import *

(ggplot(diamonds)
 + stat_summary(aes('clarity', 'price', fill='cut'), geom='col', position='dodge')
 + stat_summary(aes('clarity', 'price', color='cut'), geom='linerange', size=1, position=position_dodge(width=0.9))
 + scale_color_hue(l=.3)
 + theme(figure_size=(11, 8))
)

我在这里缺少什么,或者我不应该尝试从脚本中进行绘图,这通常对其他一切都很方便?

PS 解决方案:这似乎是 PyCharm 中的一个错误,社区可能还没有注意到,但这有点公平,因为 plotnine 库也有点新。我的解决方案是避免尝试在脚本中执行此操作,而是从 PyCharm 中的 ipython 控制台中进行绘图,这可以工作。

4

1 回答 1

4

您必须打印 ggplot 对象。

p = (ggplot(diamonds)
     + stat_summary(aes('clarity', 'price', fill='cut'), geom='col', position='dodge')
     + stat_summary(aes('clarity', 'price', color='cut'), geom='linerange', size=1, position=position_dodge(width=0.9))
     + scale_color_hue(l=.3)
     + theme(figure_size=(11, 8))
)

print(p)

IPython 会自动为您打印单元格中的最后一个结果。对于其他环境,您必须明确执行

于 2018-01-21T17:59:04.090 回答