海生大Pandas的高地

2024-04-19 09:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,按类别有三个数据点:平均值、最大值、最小值

我想把它们画成平均值是一个点,最大值/最小值是一条线。类似于股票的高/低/收盘图,甚至只是误差线。在

为了便于交谈,假设我的代码看起来像

df = pd.DataFrame({'day': ['M', 'T', 'W', 'F'],
              'foo' : [1,2,3,4],
              'foo_max' : [5,5,6,7],
              'foo_min' : [0,1,1,1]})

sns.stripplot(df.day, df.foo, color='black')
plt.show()

Tags: 数据代码dataframepandasdffoomin类别
1条回答
网友
1楼 · 发布于 2024-04-19 09:18:49

你可以这样做:

df.set_index('day', inplace=True)

# tsplot with error bars
ax = sns.tsplot([df['foo_max'], df['foo_min']], err_style="ci_bars", 
                interpolate=False, color='g')

ax.set_xticks(np.arange(0, df.shape[0]))
ax.set_xticklabels(df.index) 
ax.set_ylim(0, df.values.max()+1)
sns.plt.show()

enter image description here

相关问题 更多 >