我试图使用以下代码在seaborn中制作2x1的子图:
```python import seaborn as sns import matplotlib.pyplot as pltfig, axs = plt.subplots(nrows=2, ncols=1)
sns.lineplot(x=x_data, y=y_data, ax=axs[0]) sns.scatterplot(x=x_data, y=y_data, ax=axs[1]) plt.show() ```
data = pandas.DataFrame({"x": [1, 2, 4],
"y": [10,20,40],
"s": [0.01,0.1,1.0]})
plt.figure()
plt.subplot(2, 1, 1)
sns.pointplot(x="x", y="y", data=data)
plt.errorbar(np.arange(len(data["x"])), data["y"], yerr=data["s"])
plt.subplot(2, 1, 2)
sns.factorplot(x="x", y="y", data=data)
plt.show()
它会产生两个单独的图形,而不是一个包含两个子图的图形。为什么会这样?如何使seaborn可以多次调用以创建单独的子图?
我尝试查看下面引用的文章,但我无法看到即使首先调用factorplot
,也可以添加子图的方法。有人能展示一个例子吗?这会非常有帮助。这是我的尝试:
data = pandas.DataFrame({"x": [1, 2, 4],
"y": [10,20,40],
"s": [0.01,0.1,1.0]})
fig = plt.figure()
sns.pointplot(x="x", y="y", data=data)
ax = sns.factorplot(x="x", y="y", data=data)
fig.add_subplot(212, axes=ax)
plt.errorbar(np.arange(len(data["x"])), data["y"], yerr=data["s"])
plt.show()