我想知道是否有一种好方法可以将颜色条的标签垂直向下移动一些偏移量?
我试过bar.ax.yaxis.labelpad,它允许我将标签水平移动一些偏移量,但不能垂直移动。
我知道bar.ax.yaxis.set_label_coords(x,y),它可以显式设置坐标。但问题是我不知道如何获取初始坐标值来为我设置y坐标的相对偏移。
如果您想更改垂直颜色条上标签的 y 位置,请更改 y 坐标。默认值为0.5,单位是颜色条高度的分数。
例如,让我们将标签放在颜色条上方 1/4 处而不是 1/2 处:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.random((10, 10)), cmap='gist_earth')
cbar = fig.colorbar(im)
cbar.set_label('Test', y=0.25)
plt.show()
Run Code Online (Sandbox Code Playgroud)
您可能还想将它放在颜色栏的末尾。在这种情况下,您可能还想更改文本的对齐方式。请注意,默认情况下,matplotlib 中的文本对齐将相对于文本的预旋转位置(取决于 的值rotation_mode)。因此,我们要更改文本的水平对齐方式,而不是其垂直对齐方式。
例如,让我们将文本与颜色栏的顶部对齐:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.random((10, 10)), cmap='gist_earth')
cbar = fig.colorbar(im)
cbar.set_label('Test', y=1.0, ha='right')
plt.show()
Run Code Online (Sandbox Code Playgroud)
和底部:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.random((10, 10)), cmap='gist_earth')
cbar = fig.colorbar(im)
cbar.set_label('Test', y=0, ha='left')
plt.show()
Run Code Online (Sandbox Code Playgroud)
最后,您可能还希望文本走另一条路。在这种情况下,您需要调整文本的旋转以及垂直和水平对齐方式(同样,对齐方式是相对于旋转前的文本):
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.random((10, 10)), cmap='gist_earth')
cbar = fig.colorbar(im)
cbar.set_label('Test', y=0, ha='right', rotation=-90, va='bottom')
plt.show()
Run Code Online (Sandbox Code Playgroud)