我的代码有什么问题,该代码返回空图?

时间:2019-06-13 15:24:30

标签: python python-3.x pandas matplotlib

我是Python的新手,我知道这是一个基本问题,但是花了我一段时间。

我有一个表,其中有四列为date, time, flow, dayType,它们显示了两天内在特定时间内有多少辆汽车通过某个区域(2018-10-052018-10-12)。

现在,我想根据同一图表(时间轴)上的时间来绘制每天的相应流量,以比较这些天,但是我得到的唯一是没有显示任何图表的空白图表!

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from numpy import split
%matplotlib inline
sns.set()
data = pd.read_excel('friday_frame.xlsx', names=['date', 'time', 'flow', 'dayType'])
fig, ax = plt.subplots(figsize=(12, 4))
dataPivot = pd.pivot_table(data, values='flow', index='time', columns='date').plot()
plt.ylabel('flows');

1 个答案:

答案 0 :(得分:0)

我使用此代码制作了一个虚拟DataFrame,类似于您正在做的事情:

data = pd.DataFrame(data={"date": ["01/01/2019", "01/01/2019", "01/02/2019", "01/02/2019"],
                          "time": [pd.Timestamp(year=2019, month=1, day=1, hour=9),
                                  pd.Timestamp(year=2019, month=1, day=1, hour=13),
                                  pd.Timestamp(year=2019, month=1, day=2, hour=9),
                                  pd.Timestamp(year=2019, month=1, day=2, hour=13)],
                          "flow": [1,2,3,4], "dayType": ["morning", "morning", "afternoon", "afternoon"]})
dataPivot = pd.pivot_table(data, values='flow', index='time', columns='date'); display(dataPivot) #Pivot Table Values
dataPivot.plot(kind="bar") #The Graph

它输出以下内容:

Output of above code

这与您的工作有何不同?

几件事,但没什么大不了的。

首先,plot()需要一些kind的图形才能绘制,在这种情况下,我选择了条形图(kind="bar")。当然,您可以选择任何适合自己的方式。

第二,我选择不将参数链接在一起,以便可以看到表格和图表。自从我在Jupyter中运行此代码以来,我需要使用display在一个单元格中显示多个内容。

希望这会有所帮助!