/ / Môžu sa automaticky vyvažovať yaxisy v seasníkoch (distplot)? - python, matplotlib, pozemok, morské dno

Môže byť yaxis na seaborn (distplot) automaticky zmenený? - python, matplotlib, pozemok, morské dno

Môže a Pobrežie mora nastaviť automaticky premeniť yaxis na zachytenie maximálneho rozsahu y viacerých množín údajov?

Keď používate dávky pozemkov Seaborne, niekedy je nevyhnutné, aby sa údaje poskytovali bez zvýšenia maximálnej frekvenčnej hodnoty. Keď k tomu dôjde, vytvorený yaxis vynesie dáta. Avšak, sns.distplot() je dobré, ak sú údaje poskytované s maximálnym maximom.

To sa dá opraviť cez Matplotlib.patches alebo len volaním ax.autoscale()(Vďaka @ImportanceOfBeingErnest pre neskorší návrh), ale buď sa zdá "kludgey" ...

Jednoduchý pracovný príklad:

# Import modules
import numpy as np
from scipy.stats import truncnorm
import matplotlib.pyplot as plt
import seaborn as sns; sns.set(color_codes=True)

# Make some random data (credit: [@bakkal"s Answer][3])
scale = 3.
range = 10
size = 100000
X = truncnorm(a=-range/scale, b=+range/scale, scale=scale).rvs(size=size)

# --- first time to show issue
# Now plot up 1st set of data (with first dataset having high Y values)
ax= sns.distplot( X*4 )
# Now plot up two more
for i in np.arange(1, 3):
sns.distplot( X*i, ax=ax )
plt.show()

 (Problém!)

# --- Second time with a "kludgey" fix
ax = sns.distplot( X*4 )
# Now plot up two more
for i in np.arange(1, 3):
sns.distplot( X*i, ax=ax )
# Now force y axis extent to be correct
ax.autoscale()
plt.show()

(Úspech!)

# --- Third time with increasing max in data provided
ax= sns.distplot( X )
# Now plot up two more
for i in np.arange(2, 4 ):
sns.distplot( X*i, ax=ax )
plt.show()

(aj úspech)

odpovede:

2 pre odpoveď č. 1

Bola to otázka Seaborne (0.8.0) a oprava bola predložená dňa GitHub (Vďaka @mwaskom).

Ak sa takýto problém zobrazuje, aktualizujte prosím iba Seaborn (> = verzia 0.8.1).