如何在颜色栏上同时放置y轴标签和标题

Mat*_*s24 2 python matplotlib colorbar

使用以下代码,它将标签放置在颜色栏的顶部,但也将y标签放置在颜色栏的顶部。理想情况下,我希望在颜色栏的顶部有一个标签,而在右边则一个标签(如此处显示的“联系人数量”所示)

import matplotlib.pyplot as plt  
import numpy as np

number = 100
number_ticks = 9
x_input = np.array([np.linspace(-1.,3.,100),]*number)
y_input = np.array([np.arange(0.,100.,1.),]*number).transpose()
output = np.array([np.linspace(0.,1.0,100),]*number)
bounds=np.linspace(0.0,1.0,number_ticks)  
cntr1 = plt.contourf(x_input, y_input, output, vmin = 0.0, vmax = 1.0, levels = bounds)
cbar1 = plt.colorbar()
cbar1.set_label(r"$\bf{title}$", labelpad=-40, y=1.03, rotation=270)  
cbar1.ax.set_ylabel(r"$\bf{y_label}$", labelpad=-40, y=1.03, rotation=0)   
plt.show()
Run Code Online (Sandbox Code Playgroud)

所需的输出既是颜色栏上方的标签,也是其右侧的标签。上面的代码仅将两个标签放置在相同的位置(即上方)。y标签不会像我想要的那样移到颜色栏的一侧(就像在我共享的链接中一样)。

xdz*_*ze2 5

您可以使用以下Axes.set_title方法:

import matplotlib.pyplot as plt  
import numpy as np

number = 100
number_ticks = 9
x_input = np.array([np.linspace(-1.,3.,100),]*number)
y_input = np.array([np.arange(0.,100.,1.),]*number).transpose()
output = np.array([np.linspace(0.,1.0,100),]*number)
bounds=np.linspace(0.0,1.0,number_ticks)  
cntr1 = plt.contourf(x_input, y_input, output, vmin = 0.0, vmax = 1.0, levels = bounds)
cbar1 = plt.colorbar()
cbar1.ax.set_title(r"$\bf{title}$")  
cbar1.ax.set_ylabel(r"$\bf{y_label}$",  labelpad=20, rotation=270)   
plt.show()
Run Code Online (Sandbox Code Playgroud)

我认为ColorbarBase.set_label相当于cbar1.ax.set_ylabel。并且Axes.set_label是指定图例条目。

图片