Why is the plot generated from ggplot not showing up?
I am unable to display the plot from ggplot
, Я пробовал что-то вроде
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?
1 ответ
Линия plt = ggplot(....
не правильно, по нескольким причинам.
plt
это имя, которое вы далиpylab
модуль.plt =
удалит это!data=df
является ключевым аргументом (из-заdata=
часть). Они должны идти за позиционными аргументами. Увидетьkeyword
запись глоссария Python для деталей. Вам либо нужно сделать первый аргумент позиционным, убравdata=
или поставить его после позиционного аргументаaes(x=x, y=y)
,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
фигура, если это то, что вы хотите сделать.