Сюжеты Matplotlib получаются пустыми, даже если они имеют значения - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в аналитике, Python и машинном обучении, и я работаю над прогнозированием времени.Используя следующий код, я получаю значение для данных поезда и теста, но график отображается пустым.

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt
import statsmodels.tsa.api as ExponentialSmoothing
#Importing data
df = pd.read_csv('international-airline-passengers - Copy.csv')
#Printing head
print(df.head())
#Printing tail
print(df.tail())
df = pd.read_csv('international-airline-passengers - Copy.csv', nrows = 11856)
#Creating train and test set 
#Index 10392 marks the end of October 2013 
train=df[0:20]
test=df[20:]
#Aggregating the dataset at daily level
df.Timestamp = pd.to_datetime(df.Month,format='%m/%d/%Y %H:%M') 
df.index = df.Timestamp 
df = df.resample('D').mean()
train.Timestamp = pd.to_datetime(train.Month,format='%m/%d/%Y %H:%M')
print('1')
print(train.Timestamp)
train.index = train.Timestamp 
train = train.resample('D').mean() 
test.Timestamp = pd.to_datetime(test.Month,format='%m/%d/%Y %H:%M') 
test.index = test.Timestamp 
test = test.resample('D').mean()
train.Count.plot(figsize=(15,8), title= 'Result', fontsize=14)
test.Count.plot(figsize=(15,8), title= 'Result', fontsize=14)
plt.show()

Невозможно понять причину получения пустого графика, даже если данные поезда и теста имеют значение.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018
import holoviews as hv
import pandas as pd
import numpy as np
data=pd.read_csv("C:/Users/Nisarg.Bhatt/Documents/data.csv", engine="python")

train=data.groupby(["versionCreated"])["Polarity Score"].mean()
table=hv.Table(train)
print(table)
bar=hv.Bars(table).opts(plot=dict(width=1500))
renderer = hv.renderer('bokeh')
app = renderer.app(bar)
print(app)

from bokeh.server.server import Server
server = Server({'/': app}, port=0)
server.start()
server.show("/")

Это делается с помощью Holoviews, оно используется для целей визуализации. Если вы используете для профессионального приложения, вы обязательно должны попробовать это.Здесь versionCreated является датой, а Polarity похож на счет.Попробуйте это

ИЛИ, если вы хотите придерживаться matplotlib, попробуйте это:

fig, ax = plt.subplots(figsize=(16,9))

ax.plot(msft.index, msft, label='MSFT')
ax.plot(short_rolling_msft.index, short_rolling_msft, label='20 days rolling')
ax.plot(long_rolling_msft.index, long_rolling_msft, label='100 days rolling')

ax.set_xlabel('Date')
ax.set_ylabel('Adjusted closing price ($)')
ax.legend()

Также это можно использовать, если вы хотите придерживаться matplotlib

0 голосов
/ 06 июня 2018

Я думаю, что нашел проблему здесь.Дело в том, что вы используете train.Count.plot здесь, в то время как значение "plt" все еще пусто. Если вы просматриваете документацию по matplotlib (ссылка внизу),вы обнаружите, что сначала вам нужно сохранить какое-то значение в plt, а здесь, так как plt пусто, оно возвращает пустой график.По сути, вы ничего не рисуете, а просто показываете пустой график.

Например: plt.subplots (values) или plt.scatter (values), или любая из его функций в зависимости от требований. Надеюсь, это поможет.

https://matplotlib.org/

...