python - 在 panda concat 图上绘制不同的误差线
问题描述
我制作了一个函数,试图在数据框中绘制一些值的平均值条。我遇到麻烦的地方是为每个条形图添加相应的错误。我似乎无法理解应该如何正确使用yerr参数。
def env_mean_concat(dataframe_name, title_name, max_score):
x = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 1'].mean().rename('Environment 1')
y = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 2'].mean().rename('Environment 2')
plot = pd.concat([x, y], axis=1).plot(kind = "bar", yerr=1) #yerr=env_std_dev(dataframe_name).values.T)
plot.set_title("Mean of " + title_name)
plot.set_xlabel("Questions")
plot.set_ylabel("Score")
plot.set_ylim(0, max_score)
我还做了一个返回数据标准差的函数
def env_std_dev(dataframe_name):
std_1 = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 1'].std()
std_2 = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 2'].std()
return std_1, std_2
在图片中,您可以看到情节,但出于演示目的使用 yerr=1。
我该怎么做才能让std_1成为蓝色条上的错误条,而std_2成为橙色条上的错误?
解决方案
当然,只是我无法理解yerr的结构!
更改了偏差代码
def env_std_dev(dataframe_name):
std_1 = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 1'].std()
std_2 = dataframe_name[dataframe_name['What environment did you use during the experiment?'] == 'Environment 2'].std()
std = [std_1.to_numpy(), std_2.to_numpy()]
return std
现在设置时哪个
yerr=env_std_dev(dataframe_name)
感谢那些为我指明正确方向的人。我肯定会在未来看看seaborn!
推荐阅读
- python - 在Python中查找多个元素的最小值和最大值
- reactjs - 如何在 React 中渲染 Dom 之前更新数组
- swift - UIApplication 键窗口“安全区域布局指南”不包括标签栏和导航栏
- php - 无法访问本地主机:1234
- arrays - 有没有一种简单的方法可以使用小脚本自动读取文本文件并使用带有 awk 或其他 unix 命令的 bash 脚本进行绘图?
- c# - 带有不同 WHERE 子句的 SELECT
- core-data - 创建一个 NSManagedObject 并注入一个 SwiftUI 视图,该视图会自动添加到导航堆栈中
- swift - iOS - 将字符串拆分为关键字和短语
- docker-swarm - 无法使用连接到同一 VCN 的 Oracle Cloud VM 加入 docker swarm
- php - Html 和 css 到电子邮件 php laravel