我使用hist2d函数在matplotlib中创建了一个多子图。每个子图显示不同范围的数据,第四个子图显示所有其他子图的和。
一切都是完美的,除了颜色栏没有统一所有的子情节.我看到,解决这个问题的所有解决方案都需要将数据转换为图像(例如imshow),这确实使我的计划变得一团糟。
我希望情节保持原样,只需改变颜色。有人知道怎么做吗?
谢谢:-)
发布于 2022-01-07 22:43:48
我对这个主题做了更多的研究,似乎vmin和vmax毕竟是解决方案。
如果你用这种方式写代码-
hist = ax.hist2d(x, y, bins=(500, 200), norm= LogNorm(vmin=min_value, vmax= max_value))
然后你就可以控制你的阴谋的边界了。如果您循环遍历所有的子图,您可以将这个vmin和vmax配置为所有它们-所以比例颜色是一致的!
为了让你的vmin和vmax运行这个代码-
vmin, vmax = hist[-1].get_clim()
发布于 2022-08-15 02:51:53
以下是最简单的方法:
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,5))
b=ax1.hist2d(x_b, y_b, bins =[x_bins, y_bins], cmap='Blues')
ax1.set_xlim([-130.05, -129.95])
ax1.set_ylim([45.90, 46])
ax1.set_yticks([45.90, 45.925, 45.95, 45.975, 46])
ax1.set_xticks([-130.05, -130.025, -130, -129.975, -129.95])
cb1=plt.colorbar(b[3], ax=ax1, shrink=0.80)
cb1.set_label('Observations/day', fontsize=10)
ax1.set_ylabel('Latitude', fontsize=10)
ax1.set_xlabel('Longitude', fontsize=10)
https://stackoverflow.com/questions/70626880
复制相似问题