找不到在hist2d和子图中包含颜色条的方法

时间:2019-05-31 02:19:58

标签: python matplotlib histogram

我正在尝试向hist2d图中添加颜色条。我有三个不同方向的粒子分布相同的子图。我有两个主要问题:

  • 当我使用colors.LogNorm()时,地块是否共享规范化?
  • 是这种情况,如何在右侧添加一个颜色栏?我尝试使用plt.colorbar(),但由于发现examples使用hist2d,所以我不太了解如何在pcolor中使用它。

我的代码:

fig, ax = plt.subplots(nrows=1, ncols=3, figsize=(15,5))
my_cmap = copy.copy(mpl.cm.get_cmap('inferno'))
my_cmap.set_bad((0,0,0))

ax[0].set_xlabel('$x_c$ [$\mathrm{kpc}$]')
ax[0].set_ylabel('$y_c$ [$\mathrm{kpc}$]')
ax[0].set_aspect('equal')
ax[0].hist2d(x_plot, y_plot, bins=(bin_num, bin_num), norm=mpl.colors.LogNorm(), cmap=my_cmap, range=[[-box_size, box_size], [-box_size, box_size]])

ax[1].set_xlabel('$y_c$ [$\mathrm{kpc}$]')
ax[1].set_ylabel('$z_c$ [$\mathrm{kpc}$]')
ax[1].set_aspect('equal')
ax[1].hist2d(y_plot, z_plot, bins=(bin_num, bin_num), norm=mpl.colors.LogNorm(), cmap=my_cmap, range=[[-box_size, box_size], [-box_size, box_size]])

ax[2].set_xlabel('$x_c$ [$\mathrm{kpc}$]')
ax[2].set_ylabel('$z_c$ [$\mathrm{kpc}$]')
ax[2].set_aspect('equal')
ax[2].hist2d(x_plot, z_plot, bins=(bin_num, bin_num), norm=mpl.colors.LogNorm(), cmap=my_cmap, range=[[-box_size, box_size], [-box_size, box_size]])

fig.suptitle('Dark matter density', y=0.99)
plt.tight_layout()
plt.savefig('dm_density.pdf', dpi=300)
plt.show()

0 个答案:

没有答案