我已經使用FacetGrid()從seaborn模塊打破的線圖成段與標簽為每個區域作為各副區的標題。我在檔案中看到了讓 x 軸獨立的選項。但是,我找不到與使繪圖大小對應于每個軸的大小的任何內容。
我用來生成此圖的代碼以及該圖可在下面找到。
import matplotlib.pyplot as plt
import seaborn as sns
# Added during Edit 1.
sns.set()
graph = sns.FacetGrid(rmsf_crys, col = "Subunit", sharex = False)
graph.map(plt.plot, "Seq", "RMSF")
graph.set_titles(col_template = '{col_name}')
plt.show()
由上述代碼生成的圖

編輯 1
使用relplot()而不是FacetGrid()直接呼叫更新了繪圖代碼。最終結果是同一張圖。
import matplotlib.pyplot as plt
import seaborn as sns
# Forgot to include this in the original code snippet.
sns.set()
graph = sns.relplot(data = rmsf_crys, x = "Seq", y = "RMSF",
col = "Subunit", kind = "line",
facet_kws = dict(sharex=False))
graph.set_titles(col_template = '{col_name}')
plt.show()
uj5u.com熱心網友回復:
對此的完全支持需要存在于 matplotlib 層,我認為目前不可能有獨立的軸但共享變換。(對 matplotlib 尺度內部結構有更深入了解的人可能會證明我錯了)。
但是您可以通過提前計算您需要的 x 范圍并使用它來引數化方面的 gridspec 來接近:
import numpy as np, seaborn as sns
tips = sns.load_dataset("tips")
xranges = tips.groupby("size")["total_bill"].agg(np.ptp)
xranges *= 1.1 # Account for default margins
sns.relplot(
data=tips, kind="line",
x="total_bill", y="tip",
col="size", col_order=xranges.index,
height=3, aspect=.65,
facet_kws=dict(sharex=False, gridspec_kws=dict(width_ratios=xranges))
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/328182.html
標籤:Python matplotlib 海生
