python - 如何在颜色条上同时放置 y 轴标签和标题
问题描述
使用以下代码,它会在颜色条的顶部放置一个标签,但它也会将 y 标签放在顶部。理想情况下,我希望颜色栏顶部有一个标签,右侧有一个标签(如此处所示,带有 '# of contacts')。
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()
所需的输出既是颜色条上方的标签,也是颜色条右侧的标签。上面的代码只将两个标签放在相同的位置(即上面)。y 标签不会像我想要的那样位于颜色栏的一侧(就像我在共享的链接中所做的那样)。
解决方案
您可以使用以下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()
我认为ColorbarBase.set_label
相当于cbar1.ax.set_ylabel
. 并且Axes.set_label
是指定一个图例条目。
推荐阅读
- python - 在现有文件中添加行
- javascript - 如何在 json-rules-engine 中查找失败的规则
- javascript - 如何将一个数组元素设置为树数组结构的根节点?
- python - plt.ion() 最近改变了行为
- javascript - Angular 7根据传递的数据选择选定的属性选项
- scala - scala - scalatest - 最终特征胜过失败断言?
- angular - latest @angular-cli 不会创建具有最新 angular 的项目
- ios - 无法向我的应用添加新的 iOS 捆绑标识符 - LinkedIn
- sql-server - SQL Management Studio:请求组到多个文件
- regex - 正则表达式删除特定的查询参数