python: 如何为 3 个子图设置相同的颜色图
python: how to set the same colormap for 3 subplots
我正在使用 python 绘制一个包含 3 个子图的图形。我想将颜色图设置为每个子图的热图,我的代码如下:
fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(20,15))
count = 0
for ax in axes.flat:
count += 1
if count == 1:
im = ax.imshow(data_in_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('arriving hours of travel survey',fontsize=15)
plt.hot()
if count == 2:
im = ax.imshow(data_out_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('leaving hours of travel survey',fontsize=15)
plt.hot()
if count == 3:
im = ax.imshow(data_stay_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('stay hours of travel survey',fontsize=15)
plt.hot()
fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.75, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cbar_ax)
plt.show()
然而,我的情节是这样的:
第一个不是热色图,有解决办法吗?
在坐标轴上绘图时,需要在绘图前设置全局颜色条。因此,您需要在第一个 ax.imshow()
.
之前进行 plt.hot()
调用
我正在使用 python 绘制一个包含 3 个子图的图形。我想将颜色图设置为每个子图的热图,我的代码如下:
fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(20,15))
count = 0
for ax in axes.flat:
count += 1
if count == 1:
im = ax.imshow(data_in_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('arriving hours of travel survey',fontsize=15)
plt.hot()
if count == 2:
im = ax.imshow(data_out_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('leaving hours of travel survey',fontsize=15)
plt.hot()
if count == 3:
im = ax.imshow(data_stay_array, interpolation='nearest',vmin=0, vmax=150)
ax.set_xticks(range(24))
ax.set_xticklabels(('6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','0','1','2','3','4','5'),fontsize=15)
ax.set_yticks(range(8))
ax.set_yticklabels(('Belltown', 'Downtown', 'Industrial District', 'Wallingford', 'University District', 'Capitol Hill', 'Lakecity','Ballard'),fontsize=15)
ax.set_title('stay hours of travel survey',fontsize=15)
plt.hot()
fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.75, 0.1, 0.03, 0.8])
fig.colorbar(im, cax=cbar_ax)
plt.show()
然而,我的情节是这样的:
第一个不是热色图,有解决办法吗?
在坐标轴上绘图时,需要在绘图前设置全局颜色条。因此,您需要在第一个 ax.imshow()
.
plt.hot()
调用