如何通过Matplotlib在2D直方图中增加对比度

时间:2019-04-09 04:52:57

标签: python matplotlib histogram

我必须在几组数据上绘制2D直方图。我需要增加点之间的对比度,因为差异并不明显。 虽然每个数据集中的最大值都不同,但我必须找到一种自动进行归一化和增加强度(对比度)的方法。

这是我在每个数据集上使用的代码:

H2, xedges, yedges, image = plt.hist2d(DF['x'], DF['y'], bins=(500, 500), cmap="hot", cbar = False, xticklabels = False, yticklabels = False, robust = True)

可能的解决方案是:

1-通过数据集的最大值确定历史数字

2-将数据集乘以强度因子(例如1000)

3-使用seaborn.heatmap()绘制新数据

这可以通过以下方式实现:

D2H, xedges, yedges = np.histogram2d(DF['x'], DF['y'], bins=(500, 500))
sns.heatmap(D2H/(D2H.max())*1000, cmap = "hot", cbar = False, xticklabels = False, yticklabels = False, robust = True)

您认为这是最好的方法吗?我期待任何更好,更简单的解决方案。谢谢。

1 个答案:

答案 0 :(得分:0)

乘以任意数字将更改distribution的变换。我建议您使用vmin / vmax normalise histogram,可以在以下链接Normalisation中找到它。

所以vmin = D2H.min(), vmax = D2H.max()