考虑如果不使用seaborn会怎样做。您需要计算均值和标准差,并将其作为组的函数绘制出来。现在,非常容易通过
plot(x,y)
交换x和y:
plot(y,x)
。对于填充区域,您可以使用
fill_betweenx
而不是
fill_between
。
下面是两种情况的比较。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([[0,1],[0,2],[0,1.5],[1,1],[1,5]], columns=['group','val'])
mean = df.groupby("group").mean()
std = df.groupby("group").std()
fig, (ax, ax2) = plt.subplots(ncols=2)
ax.plot(mean.index, mean["val"].values)
ax.fill_between(mean.index, (mean-std)["val"].values, (mean+std)["val"].values, alpha=.5)
ax.set(xlabel="group", ylabel="val")
ax2.plot(mean["val"].values, mean.index)
ax2.fill_betweenx(mean.index, (mean-std)["val"].values, (mean+std)["val"].values, alpha=.5)
ax2.set(ylabel="group", xlabel="val")
fig.tight_layout()
plt.show()
![enter image description here](https://istack.dev59.com/7FO0I.webp)