所以我一直试图用plotnine来计算绘图,是我从Python听到的Python中最ggplot2-esque库,而我在PyCharm中用Python完成它很困难脚本。这似乎是一个问题,有matplotlib和其他绘图库的许多解决方案也遇到这个错误,但使用他们的答案(将DISPLAY=True
添加到环境变量,在图的末尾添加show()
等)不适用于情节。
我试图绘制以下内容,它在常规的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))
)
我在这里缺少什么,伙计,或者我不应该尝试在脚本中进行绘图,这对其他一切通常都很方便?我将不胜感激任何帮助。
P.S。解决方案:这似乎是PyCharm中的一个社区可能还没有注意到的错误,但这有点公平,因为情节库也有点新。我的解决方案是避免尝试在脚本中执行此操作,而是从PyCharm中的ipython控制台中进行绘图,该工作正常。
答案 0 :(得分:1)
你必须打印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会自动在单元格中打印最后一个结果。对于其他环境,您必须明确地执行此操作