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(.... не правильно, по нескольким причинам.

  1. plt это имя, которое вы дали pylab модуль. plt = удалит это!
  2. data=df является ключевым аргументом (из-за data= часть). Они должны идти за позиционными аргументами. Увидеть keyword запись глоссария Python для деталей. Вам либо нужно сделать первый аргумент позиционным, убрав 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 фигура, если это то, что вы хотите сделать.

Другие вопросы по тегам