seaborn 文档区分了图形级函数和轴级函数:https://seaborn.pydata.org/introduction.html#figure-level-and-axes-level-functions https://seaborn.pydata.org/introduction.html#figure-level-and-axes-level-functions
我知道像 sns.boxplot 这样的函数可以将轴作为参数,因此可以在子图中使用。
但是 sns.relplot() 怎么样?有没有办法把它放到子图中?
更一般地说,有什么方法可以让seaborn在子图中生成线图吗?
例如,这不起作用:
fig,ax=plt.subplots(2)
sns.relplot(x,y, ax=ax[0])
因为 relplot 不将轴作为参数。
嗯,这不是真的。您确实可以将轴对象传递给relplot
。以下是一个最小的答案。这里的关键点是关闭空轴对象由返回relplot
。然后您还可以使用ax[0]
or ax[1]
向您的各个子图添加额外的曲线,就像您所做的那样matplotlib
.
import seaborn as sns
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2)
xdata = np.arange(50)
sns.set(style="ticks")
tips = sns.load_dataset("tips")
g1 = sns.relplot(x="total_bill", y="tip", hue="day", data=tips, ax=ax[0])
g2 = sns.relplot(x="total_bill", y="tip", hue="day", data=tips, ax=ax[1])
# Now you can add any curves to individual axis objects
ax[0].plot(xdata, xdata/5)
# You will have to close the additional empty figures returned by replot
plt.close(g1.fig)
plt.close(g2.fig)
plt.tight_layout()
您还可以仅使用以下方式制作线图seaborn
as
import seaborn as sns
import numpy as np
x = np.linspace(0, 5, 100)
y = x**2
ax = sns.lineplot(x, y)
ax.set_xlabel('x-label')
ax.set_ylabel('y-label')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)