ฉันใช้ lmplot ของ Seaborn ในการพล็อตการถดถอยเชิงเส้นโดยแบ่งชุดข้อมูลของฉันออกเป็นสองกลุ่มด้วยตัวแปรเด็ดขาด
สำหรับทั้ง x และ y ฉันต้องการตั้งค่าขอบเขตล่างของทั้งสองแปลงด้วยตนเองแต่ปล่อยขอบเขตบนไว้ที่ค่าเริ่มต้นของ Seaborn นี่คือตัวอย่างง่ายๆ:
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)
ผลลัพธ์ต่อไปนี้:
แต่ในตัวอย่างนี้ฉันต้องการให้ xlim และ ylim เป็น (0, *) ฉันลองใช้ sns.plt.ylim และ sns.plt.xlim แต่สิ่งเหล่านี้มีผลต่อพล็อตด้านขวาเท่านั้น ตัวอย่าง:
sns.plt.ylim(0,)
sns.plt.xlim(0,)
ฉันจะเข้าถึง xlim และ ylim สำหรับแต่ละพล็อตใน FacetGrid ได้อย่างไร
numpy.random
โมดูลนี้คุณสามารถประหยัดเวลาในการสร้างข้อมูลแบบสุ่มได้มาก (ซึ่งอาจเป็นสิ่งที่มีประโยชน์มากที่จะทำ!) ตัวอย่างเช่นคุณอาจจะได้รับbase_x
และมีbase_y
ตัวแปรนั้นจะสามารถสร้างขึ้นในทำนองเดียวกันกับการดำเนินงาน vectorizedbase_x = np.random.rand(n); base_y = base_x * 2
y