import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data = {'10.2': [72,57,56,67,69,136],
'10.6':[31,23,19,17,41,74],
'10.9': [27,96,97,99,18,40],
'11.3':[10,98,100,35,67,258],
'11.8':[124,92,49,24,88,209]}
df = pd.DataFrame(data)
x = df.index
y = df.columns.astype(float)
X, Y = np.meshgrid(x,y)
Z = df.values.T
c = plt.contourf(X, Y, Z)
1条答案
按热度按时间xlpyo6sf1#
调用签名为
contourf(Z)
或contourf(X, Y, Z)
。文档中的[X,Y,]
符号令人困惑,但这意味着如果需要,您可以传递这些符号。但是因为你实际上把它放在了括号里,所以你创建了一个3D数组,matplotlib将其解释为Z
参数。但你还有两个问题。Y
需要转换为数值类型,您可以通过将y
定义更改为y = df.columns.astype(float)
来完成此操作。Z
是它应该是什么的转置,但可以通过执行Z = df.values.T
来修复。字符串
的数据