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'')