style sns set_style paper font examples customize matplotlib seaborn loglog

matplotlib - sns - log-log plot con jointgrid marino



seaborn style matplotlib (1)

Estoy tratando de crear un gráfico de loglog con un KDE y un histograma asociado con cada eje utilizando un objeto JointGrid marino. Esto me acerca bastante, pero los contenedores de histogramas no se traducen bien en espacio de registro. ¿Hay una manera de hacer esto fácilmente sin tener que recrear los ejes marginales?

import seaborn as sns import matplotlib.pyplot as plt import numpy as np data = sns.load_dataset(''tips'') g = sns.JointGrid(''total_bill'', ''tip'', data) g.plot_marginals(sns.distplot, hist=True, kde=True, color=''blue'') g.plot_joint(plt.scatter, color=''black'', edgecolor=''black'') ax = g.ax_joint ax.set_xscale(''log'') ax.set_yscale(''log'') g.ax_marg_x.set_xscale(''log'') g.ax_marg_y.set_yscale(''log'')


En el caso de los histogramas de registro, en general me parece útil configurar sus propios contenedores con np.logspace() .

mybins=np.logspace(0,np.log(100),100)

Luego solo establece bins= en _marginals

data = sns.load_dataset(''tips'') g = sns.JointGrid(''total_bill'', ''tip'', data,xlim=[1,100],ylim=[0.01,100]) g.plot_marginals(sns.distplot, hist=True, kde=True, color=''blue'',bins=mybins) g.plot_joint(plt.scatter, color=''black'', edgecolor=''black'') ax = g.ax_joint ax.set_xscale(''log'') ax.set_yscale(''log'') g.ax_marg_x.set_xscale(''log'') g.ax_marg_y.set_yscale(''log'')