Python 日期与时间图上数据的颜色映射

Python 日期与时间图上数据的颜色映射,python,pandas,imshow,Python,Pandas,Imshow,我试图在二维图上绘制3个变量x,y,z,x轴上有x(日期),y轴上有y(时间),z(温度)用色标映射。 我在pandas数据框中有三个可用变量,并创建了一个带有日期号的额外列,以便matplotlib可以使用它 import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates data=pd.DataFrame() data['datenum']=mdates.date2num(data

我试图在二维图上绘制3个变量x,y,z,x轴上有x(日期),y轴上有y(时间),z(温度)用色标映射。 我在pandas数据框中有三个可用变量,并创建了一个带有日期号的额外列,以便matplotlib可以使用它

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

data=pd.DataFrame() 
data['datenum']=mdates.date2num(data['Date'])
例如:

            Date Time     Tgrad   datenum
0     2016-08-01   00 -0.841203  736177.0
1     2016-08-01   01 -0.629176  736177.0
2     2016-08-01   02 -0.623608  736177.0
3     2016-08-01   03 -0.615145  736177.0
4     2016-08-01   04 -0.726949  736177.0
5     2016-08-01   05 -0.788864  736177.0
6     2016-08-01   06 -0.794655  736177.0
7     2016-08-01   07 -0.775724  736177.0
8     2016-08-01   08 -0.677951  736177.0
我一直在努力遵循以下建议:

但我认为,由于输入数据的形状错误,我没有成功。我试过这样的方法:

fig, ax = plt.subplots()
ax.imshow(data['Tgrad'], extent = [min(data['datenum']), max(data['datenum']),min(data['Time']), max(data['Time'])], cmap="autumn", aspect = "auto")
ax.xaxis_date()
但是得到一个值错误:

ValueError: setting an array element with a sequence
是否需要将数据作为numpy数组或任何其他类型?一旦我有了不同格式的数据,我如何映射它

谢谢你的帮助。
Vroni需要一个2d数组作为输入。您需要将数据重新格式化为二维数组:
Date
x
Time
,值为
Tgrad
。Pandas使用
pivot
使这一点相当容易。它确实要求您具有间距很小的数据点,即网格状的数据集(每个
日期的
值相同)。如果数据点没有整齐地分散在二维空间中,则链接的帖子将非常有用。此外,由于matplotlib可以处理数据帧,因此无需转换为numpy数组

C = data.pivot(index='Time', columns='Date', values='Tgrad')

fig, ax = plt.subplots()
ax.imshow(C)

非常感谢你的回答。这是完美的工作,是如此直接和容易。完美的