Ich versuche, ein Loglog-Diagramm mit einem KDE und Histogramm mit jeder Achse mit einem Seafood JointGrid-Objekt zu erstellen. Das bringt mich ziemlich nahe, aber die Histogramm-Bins lassen sich nicht gut in den Logspace übersetzen. Gibt es eine Möglichkeit, dies einfach zu tun, ohne die Randachsen neu erstellen zu müssen?log-log-plot mit seaborn jointgrid
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')
Ich glaube nicht, Sie als näher bekommen, was Sie jetzt haben. Das ist etwas, von dem ich denke, dass 'plotplot' sich selbst besser handhaben sollte, aber ich war vorsichtig, es hinzuzufügen, weil ich nicht sicher bin, was genau die Leute erwarten würden, um den meisten Sinn zu machen. Können Sie sagen, wie die Histogramme aussehen sollten? Balken mit konstanter Breite im Protokollbereich? – mwaskom
Yep - Balken mit konstanter Breite wären fantastisch. Ich weiß, wie man dies mit ax.hist und np.logspace von Hand macht, aber für Seaborn denke ich, ich werde weitermachen und die Daten im DataFrame aufzeichnen und dann 10^x auf die Achsenbeschriftungen anwenden ein Workaround. Als Randbemerkung, ich bin verwirrt, warum die Randachsen nicht nur Einstellung ax = g.ax_joint ax.set_xscale (‚log‘) ax.set_yscale (‚log‘) nicht automatisch eingestellt? Danke für die Antwort, es ist ein tolles Paket! – Koppology
Das ist überraschend. Diese Achsen werden geteilt, wenn Seaborn das 'JointGrid' erstellt, also schlägt es eine Inkonsistenz in Matplotlib vor. – mwaskom