Eu tenho um gráfico de dispersão que estou fazendo, mas quando alterno mcolors.Normalize
e mcolors.LogNorm
a barra de cores não é consistente entre as duas figuras - eu pensaria que os ticks da barra de cores normalizados seriam aproximadamente os mesmos que os ticks log-normalizados (por exemplo, em intervalos principais de 10 ^ 1, 10 ^ 2, 10 ^ 3, etc). Não é este o caso? Em outras palavras - as barras coloridas estão me dando a mesma resposta? Desde já, obrigado!
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)
Aqui está uma visualização do que a norma está fazendo.
Simplifiquei um pouco o seu código, já que o Seaborn não é realmente usado para o problema especÃfico (e você parece estar executando versões extremamente antigas, embora os princÃpios básicos permaneçam os mesmos). Uma semente fixa ajuda na reprodutibilidade.
Definir as mesmas marcas nas barras de cores mostra como a norma logarÃtmica amplia os valores mais baixos e diminui o espaço para os valores mais altos. Como tal, mostra mais detalhes para o histograma 2D. As curvas na parte inferior mostram esta transformação no eixo y em função dos valores de entrada (neste caso, as alturas dos compartimentos 2d).
Observe que essas normas são funções um pouco incomuns, pois atualizam internamente um valor mÃnimo e máximo (vmin e vmax) quando são executadas pela primeira vez.
Aqui está uma visualização diferente (com entrada diferente), mostrando a contagem de cada célula. Menos subdivisões permitem que o texto caiba nas células. A norma log tem cores muito mais variadas.