编程语言
首页 > 编程语言> > python – colorbar和多个子图的问题

python – colorbar和多个子图的问题

作者:互联网

我试图用彼此相邻的两个图像绘制两个相应的颜色条.
我的代码是

plt.figure(1)
plt.subplot (121)
plt.title('1')
plt.imshow(matrix_lg, interpolation='bilinear', cmap=plt.cm.jet, vmin=np.log10(minVal), vmax = np.log10(maxVal))
plt.subplot(122)
plt.title('2')
plt.imshow(matrix_lg, interpolation='bilinear', cmap=plt.cm.jet, vmin=np.log10(minVal), vmax = np.log10(maxVal))
plt.colorbar()

Python现在将颜色条附加到第二个子图并因此缩小它.但我希望两个地块的大小相同.
如何分离子图的颜色条?

enter image description here

解决方法:

您可以为颜色条创建单独的Axes实例

import matplotlib.pyplot as plt
import numpy as np

plt.figure(1)
# Create room on the right
plt.gcf().subplots_adjust(right=0.8)

plt.subplot (121)
plt.title('1')
plt.imshow(np.random.rand(10,10), interpolation='bilinear', cmap=plt.cm.jet)
plt.subplot(122)
plt.title('2')
plt.imshow(np.random.rand(10,10), interpolation='bilinear', cmap=plt.cm.jet)

# Make a new Axes instance
cbar_ax = plt.gcf().add_axes([0.85, 0.15, 0.05, 0.7])
plt.colorbar(cax=cbar_ax)

plt.show()

enter image description here

编辑:

您可以通过更改add_axes命令将颜色条的高度更改为更接近绘图的高度.这需要一个矩形作为参数[left,bottom,width,height],所以只需更改底部和高度以满足您的需要

标签:python,matplotlib,colorbar
来源: https://codeday.me/bug/20190628/1315638.html