我正在制作一个散点图,但是当我在两者之间切换时,mcolors.Normalize
两个mcolors.LogNorm
数字之间的颜色条不一致 - 我认为标准化颜色条刻度与对数标准化刻度大致相同(例如,在主要间隔 10^1、10^2、10^3 等)。难道不是这样吗?换句话说 - 颜色条是否给了我相同的答案?提前致谢!
import matplotlib.pyplot as plt # v3.5.2
import seaborn as sns # v0.11.2
import numpy as np # v1.22.1
import matplotlib.colors as mcolors
# generate data
x = np.random.normal(size=100000)
y = x * 3 + np.random.normal(size=100000)
def scatter2d(x, y, norm=mcolors.LogNorm):
"""Create a plt.2dhist with marginal histogram."""
ax1 = sns.jointplot(x=x, y=y, marginal_kws={'bins' : 50})
ax1.fig.set_size_inches(5, 4)
ax1.ax_joint.cla()
plt.sca(ax1.ax_joint)
plt.hist2d(x, y, 50, norm=norm(), cmin=1,
cmap='plasma', range=None )
# set up scale bar legend
cbar_ax = ax1.fig.add_axes([1, 0.1, 0.03, 0.7])
cb = plt.colorbar(cax=cbar_ax)
cb.set_label(f'Density of points ({norm.__name__})', fontsize=13)
pass
scatter2d(x, y)
scatter2d(x, y, norm=mcolors.Normalize)