我当前的代码如下所示:
import matplotlib.pyplot as plt
import numpy as np
s = 5
x = np.linspace(-10,10,100)
y = np.linspace(-10,10,100)
xg = np.exp(-(x**2)/(s**2))
yg = np.exp(-(y**2)/(s**2))
vals = np.meshgrid(xg,yg)
fig, ax = plt.subplots()
cax = ax.imshow(vals[0]*vals[1])
ax.axis("off")
fig.colorbar(cax,ticks=[0.0,1.0],label="Values (0-1)")
Run Code Online (Sandbox Code Playgroud)
产生以下输出:

我希望刻度值位于颜色条的顶部和底部(而不是侧面),如下所示:

目前,我已经使用 Illustrator 完成了此操作,但我计划生成大量这样的图像(用于视频),并希望使这些绘图自动进行。
如果您希望它们在颜色条上很好地居中,那么您不能使用 yticklabels 来实现此目的。但是您可以手动添加两个文本字段,如下所示:
cb = plt.colorbar(im, ticks=[], label="Values (0-1)")
cb.ax.text(0.5, -0.01, '0', transform=cb.ax.transAxes,
va='top', ha='center')
cb.ax.text(0.5, 1.0, '1', transform=cb.ax.transAxes,
va='bottom', ha='center')
Run Code Online (Sandbox Code Playgroud)
结果:

| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |