基本上,我有一些x和y值。每组x和y值都有一个对应于它们的给定值。我不确定要这样做时,一般的seaborn
热图是否足够(我可能会误会),所以该怎么办?
我希望它看起来像这样(包括垃圾箱,这样它是一个更“光滑”的彩色表面,而不仅仅是周围有很多不同的彩色圆点):
编辑: 所以我会尽力解释。
假设我有这样的东西:
import numpy as np
nx = 3
ny = 5
x = np.linspace(0.1, 1, nx)
y = np.linspace(1, 11, ny)
x_bc = x[:, np.newaxis]
y_bc = y[np.newaxis, :]
z = x_bc * y_bc
那么z
的输出就是x
和y
的每个组合,即:
[[ 0.1 0.35 0.6 0.85 1.1 ]
[ 0.55 1.925 3.3 4.675 6.05 ]
[ 1. 3.5 6. 8.5 11. ]]
因此,在这种情况下,我有3x5个z
值,即绘图中的颜色应该是什么,这些值来自两个列表(x
和y
),它们具有长度分别为3和5。那就是我想要绘制的。
答案 0 :(得分:1)
这些线看起来像轮廓。为了绘制它们并使它们之间的空间充满颜色,可以使用contourf
。
为了完成这项工作,我必须转置z
,以使列数与x
的大小匹配,而行数与y
的大小匹配。
nx = 3
ny = 5
x = np.linspace(0.1, 1, nx)
y = np.linspace(1, 11, ny)
x_bc = x[:, np.newaxis]
y_bc = y[np.newaxis, :]
z = x_bc * y_bc
plt.contourf(x, y, z.T)
plt.colorbar()
答案 1 :(得分:0)
看起来像这样,您可以通过kdeplot开始,如下所示:
ax = sns.kdeplot(x, y, shade=True)
答案 2 :(得分:0)
我建议使用matplotlib。如果您的x,y坐标是在统一网格上定义的,那么contourf
应该可以解决问题;否则,tricontourf
将为您进行三角剖分和插值。看一下this示例: