Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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 如何更改seaborn'的垂直色条标记的位置和大小;什么是热图?_Python_Matplotlib_Plot_Seaborn_Heatmap - Fatal编程技术网

Python 如何更改seaborn'的垂直色条标记的位置和大小;什么是热图?

Python 如何更改seaborn'的垂直色条标记的位置和大小;什么是热图?,python,matplotlib,plot,seaborn,heatmap,Python,Matplotlib,Plot,Seaborn,Heatmap,如何更改seaborn热图垂直颜色栏上刻度标签的位置和大小 我尝试了以下代码 ax.figure.axes[-1].yaxis.label.set_size(36) ax.figure.axes[-1].yaxis.label.set_position((4, 1.0)) 但是,这不起作用,即颜色栏标记标签的字体大小保持在相同位置,字体大小相同。我也在做 colorbar = ax.collections[0].colorbar colorbar.set_ticks([-0.667, 0, 0

如何更改seaborn热图垂直颜色栏上刻度标签的位置和大小

我尝试了以下代码

ax.figure.axes[-1].yaxis.label.set_size(36)
ax.figure.axes[-1].yaxis.label.set_position((4, 1.0))
但是,这不起作用,即颜色栏标记标签的字体大小保持在相同位置,字体大小相同。我也在做

colorbar = ax.collections[0].colorbar
colorbar.set_ticks([-0.667, 0, 0.667])


# I want these labels to be bigger and more to the right!!
colorbar.set_ticklabels(['-1', '0', '1']) 

使用
colorbar.set_ticks([-0.667,0,0.667])
,我可以更改刻度的垂直位置,但我也希望相关标签远离刻度本身。

颜色条的刻度有点混乱,因为需要通过
colorbar.set_ticks()
设置位置,但是,如果要更改其他参数,则必须返回基础轴。对于垂直色条,使用y轴

显示了一种使颜色栏始终与主绘图具有相同高度的方法。色条需要在sns.heatmap的外部创建

导入matplotlib.pyplot作为plt
从mpl_toolkits.axes_grid1导入使_axes_可定位
将numpy作为np导入
导入seaborn作为sns
ax=sns.heatmap(np.random.uniform(-6.6,(6,12)),cmap='inferno',vmin=-0.667,vmax=0.667,square=True,cbar=False)
分隔器=使轴可定位(ax)
cax=分隔器。附加_轴(“右”,size=“5%”,pad=0.1)
cbar=plt.colorbar(最大集合[0],cax=cax)
cbar.设置刻度([-0.667,0,0.667])
cbar.ax.set_yticklabels(['-1',0',1',size=20)
cbar.ax.tick_参数(轴=y',其中=major',长度=0,pad=15)
cbar.outline.set_edgecolor(“黑色”)
cbar.outline.set_线宽(2)
plt.紧_布局()
plt.show()

出于某种原因,现在我只看到颜色栏右侧的1和0标签,即命令
cbar.set_ticks([-0.667,0,0.667])
没有按预期工作,而是在工作之前。你知道为什么会出现这种情况吗?如果热图中的最低值大于
-0.667
,则该值不会出现在颜色栏中。通过
vmin
vmax
参数:
sns.heatmap(…vmin=-0.667,vmax=0.667)
,您可以强制颜色映射正好介于
-0.667
0.667
之间。谢谢!这就是问题所在:我没有注意到我正在设置
vmin
vmax
。抱歉,如果我打扰了您,但是您是否曾经体验过,如果您设置
square=True
(即,您强制热图为正方形),则色条会变得比热图更高/更大?有没有办法确保色条始终与热图的高度相同?谢谢!这也解决了另一个问题!如果可以的话,我会把这个答案提高3-4次:D