Veri kümemi kategorik bir değişkenle iki gruba bölerek doğrusal bir regresyonu çizmek için Seaborn'un lmplot'unu kullanıyorum.
Hem x hem de y için, her iki grafikte de alt sınırı manuel olarak ayarlamak istiyorum , ancak üst sınırı Seaborn varsayılanında bırakmak istiyorum. İşte basit bir örnek:
import pandas as pd
import seaborn as sns
import random
n = 200
random.seed(2014)
base_x = [random.random() for i in range(n)]
base_y = [2*i for i in base_x]
errors = [random.uniform(0,1) for i in range(n)]
y = [i+j for i,j in zip(base_y,errors)]
df = pd.DataFrame({'X': base_x,
'Y': y,
'Z': ['A','B']*(n/2)})
mask_for_b = df.Z == 'B'
df.loc[mask_for_b,['X','Y']] = df.loc[mask_for_b,] *2
sns.lmplot('X','Y',df,col='Z',sharex=False,sharey=False)
Bu, aşağıdakileri verir:
Ancak bu örnekte, xlim ve ylim'in (0, *) olmasını istiyorum. Sns.plt.ylim ve sns.plt.xlim kullanmayı denedim ama bunlar sadece sağ taraftaki arsayı etkiliyor. Misal:
sns.plt.ylim(0,)
sns.plt.xlim(0,)
FacetGrid'deki her grafik için xlim ve ylim'e nasıl erişebilirim?
numpy.random
modüle aşina olursanız, rastgele veriler oluşturmak için kendinize çok zaman kazandırabilirsiniz (bu, yapılacak çok yararlı bir şey olabilir!). Örneğin, alabilirbase_x
vebase_y
birliktebase_x = np.random.rand(n); base_y = base_x * 2
.y
Daha sonra değişken benzer vectorized operasyonları ile oluşturulabilir.