Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的单列热映射_Python_Plot_Heatmap - Fatal编程技术网

python中的单列热映射

python中的单列热映射,python,plot,heatmap,Python,Plot,Heatmap,我的目标是有一个单列热图,但由于某些原因,如果我不使用二维数组,通常用于热图的代码就无法使用 vec1 = np.asarray([1,2,3,4,5]) fig, ax = plt.subplots() plt.imshow(vec1, cmap='jet') 我知道把我的单列向量显示为热图很奇怪,但对于我来说这是一个很好的视觉效果。我只想要一列彩色的方块,我可以沿着y轴给它们贴上标签,以向人们显示物品的排序列表 您可以使用Seaborn库来执行此操作。在Seaborn中,您可以标识要打印的

我的目标是有一个单列热图,但由于某些原因,如果我不使用二维数组,通常用于热图的代码就无法使用

vec1 = np.asarray([1,2,3,4,5])
fig, ax = plt.subplots()
plt.imshow(vec1, cmap='jet')

我知道把我的单列向量显示为热图很奇怪,但对于我来说这是一个很好的视觉效果。我只想要一列彩色的方块,我可以沿着y轴给它们贴上标签,以向人们显示物品的排序列表

您可以使用Seaborn库来执行此操作。在Seaborn中,您可以标识要打印的特定列。在这种情况下,这将是您的数组。下面的内容应该可以完成你想要的

vec1 = np.asarray([1,2,3,4,5])
fig, ax = plt.subplots()
seaborn.heatmap([vec1])
然后,您只需像在pyplotlib中一样在热图上进行格式化


您可以使用Seaborn库来完成此操作。在Seaborn中,您可以标识要打印的特定列。在这种情况下,这将是您的数组。下面的内容应该可以完成你想要的

vec1 = np.asarray([1,2,3,4,5])
fig, ax = plt.subplots()
seaborn.heatmap([vec1])
然后,您只需像在pyplotlib中一样在热图上进行格式化

从开始,我提出了一种方法,使用Seaborn和Matplotlib实现巴甫洛夫在其注释中要求的操作(即,即使Seaborn没有
方向
参数,也在热图中交换轴)

让我们从前面的答案开始:

vec1 = np.asarray([1,2,3,4,5])
sns = heatmap([vec1])
plt.show()
在单个向量上使用热图可以得到以下结果:

好的,让我们交换x轴和y轴。为此,我们可以使用
仿射2D
变换,应用90度旋转

from matplotlib import transforms

tr = transforms.Affine2D().rotate_deg(90)
我们还将重塑初始数组,使其类似于列向量:

vec2 = vec1.reshape(vec1.shape[0], 1)
现在,我们可以绘制热图并强制Matplotlib执行仿射变换:

sns.heatmap(vec2)
plt.show(tr)
结果图为:

现在,如果我们想强制每一行都是正方形,我们可以简单地使用
square=True
参数:

sns.heatmap(vec2, square=True)
plt.show(tr)
这是最终结果:

希望有帮助

从开始,我提出了一种方法,使用Seaborn和Matplotlib来完成巴甫洛夫在其注释中要求的操作(即,在热图中交换轴,即使Seaborn没有
方向
参数)

让我们从前面的答案开始:

vec1 = np.asarray([1,2,3,4,5])
sns = heatmap([vec1])
plt.show()
在单个向量上使用热图可以得到以下结果:

好的,让我们交换x轴和y轴。为此,我们可以使用
仿射2D
变换,应用90度旋转

from matplotlib import transforms

tr = transforms.Affine2D().rotate_deg(90)
我们还将重塑初始数组,使其类似于列向量:

vec2 = vec1.reshape(vec1.shape[0], 1)
现在,我们可以绘制热图并强制Matplotlib执行仿射变换:

sns.heatmap(vec2)
plt.show(tr)
结果图为:

现在,如果我们想强制每一行都是正方形,我们可以简单地使用
square=True
参数:

sns.heatmap(vec2, square=True)
plt.show(tr)
这是最终结果:


希望有帮助

很好!我现在唯一的问题是我想翻转我的X轴和Y轴,这样我的方块就可以上下移动,而不是左右移动。seaborn中没有“方向”属性,转置我的向量也不起作用。有没有办法用seaborn交换我的x轴和y轴?太棒了!我现在唯一的问题是我想翻转我的X轴和Y轴,这样我的方块就可以上下移动,而不是左右移动。seaborn中没有“方向”属性,转置我的向量也不起作用。有没有办法用seaborn交换我的x轴和y轴?