10

I am unable to display the plot from ggplot. I've tried something like

import pandas as pd
import pylab as plt
import statsmodels.api as sm
from ggplot import *

df = pd.DataFrame.from_csv('file.csv', index_col=None)
x=df['X']
y=df['Y']
plt=ggplot(data=df,aes(x=x, y=y)) +\
    geom_line() +\
    stat_smooth(colour='blue', span=0.2)
plt.show()

Why is it not showing up?

4

1 回答 1

11

这条线plt = ggplot(....是不正确的,有几个原因。

  1. plt是你给pylab模块起的名字。plt =将删除它!
  2. data=df是一个关键字参数(因为data=部分)。他们必须追求立场论据。有关详细信息,请参阅Python 词汇表keyword条目。您要么需要通过取出来使第一个参数具有位置性data=,要么将其放在位置参数之后aes(x=x, y=y)
  3. ggplot调用返回一个ggplot对象,而不是一个pyplot相关的东西。ggplot对象draw()没有show()

开发人员本人在这里展示了它是如何完成的:

g = ggplot(df, aes(x=x, y=y)) +\
    geom_line() +\
    stat_smooth(colour='blue', span=0.2)
print(g)
# OR
g.draw()

最后一行g.draw()返回一个matplotlib图形对象,因此您还可以执行以下操作:

fig = g.draw()

matplotlib如果这是您想做的事情,这将使您可以访问该数字。

于 2015-06-17T12:38:17.630 回答