如何在colorb上同时放置yaxis标签和标题

2024-06-17 12:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,它将标签放在colorbar的顶部,但也将y标签放在顶部。理想情况下,我希望在colorbar顶部有一个标签,在右侧(as shown here with '# 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()

所需的输出既是colorbar上方的标签,也是其右侧的标签。以上代码只将两个标签放在同一位置(即上面)。y-label不会像我所希望的那样(就像在我共享的链接中那样)转到colorbar的一侧。在


Tags: 代码importnumberinputoutputasnpplt
1条回答
网友
1楼 · 发布于 2024-06-17 12:37:12

您可以使用^{}方法:

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()

我认为^{}相当于{a3}。和^{}指定一个图例项。在

image

相关问题 更多 >