我有一个包含20行和100列(虚拟数据)的dataframe:

现在我把数据绘制成一个热图,但是我想要一个更拓扑的数据视图。
我想要创建一个类似于等高线图的东西:

但是对于可见的点,有点像这张地图:

(来自不规则间距数据文档的等高线图)
有什么方法可以用等高线或等深线或其他什么方法来完成吗?根据我对等高线图文档的了解,X、Y和Z的数组需要大小相等,但我的数据必须有20行和100列。
提前谢谢!!
发布于 2022-08-08 15:13:49
如果您的数据是在一个数据,那么它是定期间隔。我假设x和y坐标分别是数据的column和index指数。然后,您可以简单地根据数据绘制等高线图,然后在相同的轴上绘制网格点。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# create sample dataframe
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 20)
xx, yy = np.meshgrid(x, y)
z = np.exp(-(xx**2 + yy**2))
df = pd.DataFrame(z)
# plot it
fig, ax = plt.subplots(figsize=(20, 10))
cont = ax.contourf(df)
ax.plot(df.columns, np.broadcast_to(df.index, (len(df.columns),len(df)) ), 'k.')
fig.colorbar(cont)

https://stackoverflow.com/questions/73263239
复制相似问题