我有一个合并两个数据的图。鉴于此,我必须显示两个不同的颜色条,每个数据一个。我目前正在如下绘制我的数据:
plt.figure()
# Data 1
fig = plt.imshow(data1, interpolation='nearest', cmap='binary', vmin=0, vmax=1)
# Plotting just the nonzero values of data2
data2_x = numpy.nonzero(data2)[0]
data2_y = numpy.nonzero(data2)[1]
pts = plt.scatter(data2_x, data2_y, marker='s', c=data2[data2_x, data2_y])
plt.colorbar(pts)
plt.colorbar(fig, orientation="horizontal")
这是我得到的情节:
但是,我想重新定位颜色条以使用类似的东西(用Photoshop制作):
这可能吗?
提前谢谢。
答案 0 :(得分:2)
执行此操作的“最简单”方法可能是手动放置用于彩条的轴(通过cbax = fig.add_axes([....])
)。然后,您可以将这些轴传递给颜色条调用:
类似的东西:
from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure(figsize=(8, 8))
ax = fig.add_axes([.1, .1, .8, .8])
im = ax.imshow(np.random.rand(150, 150), cmap='gray', interpolation='none')
sc = ax.scatter(2 + 146 * np.random.rand(150), 2 + 146 * np.random.rand(150),
c=np.random.rand(150), cmap='Accent', s=50, lw=0)
ax_cb1 = fig.add_axes([.1, .05, .8, .02])
ax_cb2 = fig.add_axes([.92, .1, .02, .8])
cb1 = fig.colorbar(im, cax=ax_cb1, orientation='horizontal')
cb1.ax.xaxis.set_label_position('top')
cb2 = fig.colorbar(sc, cax=ax_cb2, orientation='vertical')
答案 1 :(得分:0)
您可以使用ax关键字将颜色条链接到轴,plt.gca()为您提供当前轴:
plt.colorbar(object1, ax=plt.gca())