16
Próbuję utworzyć wykres loglog z KDE i histogramem związanym z każdej osi przy użyciu Seaborn obiektu JointGrid. Daje mi to dość blisko, ale pojemniki histogramu nie przekładają się na logspace. Czy jest jakiś sposób na zrobienie tego z łatwością bez konieczności ponownego tworzenia marginalnych osi?dział log-log z 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')
Nie sądzę dostaniesz bliżej niż to, co masz teraz. To jest coś, co moim zdaniem "jointplot" powinien sobie lepiej poradzić, ale byłem ostrożny, aby go dodać, ponieważ nie jestem pewien, czego ludzie oczekują, aby to miało największy sens. Czy możesz powiedzieć, jak chcesz wyglądać histogram? Paski o stałej szerokości w obszarze dziennika? – mwaskom
Tak - paski o stałej szerokości byłyby fantastyczne. Wiem, jak to zrobić za pomocą ax.hist i np.logspace ręcznie, ale do użytku z seabornem Myślę, że mam zamiar iść do przodu i rejestrować dane w DataFrame, a następnie zastosować 10^x do etykiet osi później jako obejście. Na marginesie, jestem zdezorientowany, dlaczego po prostu ustawienie Ax = g.ax_joint ax.set_xscale („log”) ax.set_yscale („log”) nie ustawia automatycznie marginalne osie? Dzięki za odpowiedź, to świetny pakiet! – Koppology
To zaskakujące. Osie te są udostępniane, gdy seaborn tworzy "JointGrid", więc sugeruje niespójność w matplotlib. – mwaskom