Python Pandas 未绘制错误栏以及如何自定义索引

Python Pandas error bars are not plotted and how to customize the index

我需要你的帮助来使用 Python 中的 Pandas 绘制误差线。我已阅读 Pandas 文档,并进行了一些试验和错误,但没有得到令人满意的结果。

这是我的代码:

'''
usage : (python) rc-joint-plot-error-bar.py
'''

from __future__ import print_function
import pandas as pd
import matplotlib.pyplot as plt

filename = 'rc-plot-error-bar.csv'

df = pd.read_csv(filename, low_memory = False)

headers = ['Specimen', 'CA_Native_Mean', 'CA_Implant_Mean', 'CP_Native_Mean',
    'CP_Implant_Mean', 'CA_Native_Error', 'CA_Implant_Error', 'CP_Native_Error',
    'CP_Implant_Error']
    
for header in headers :
    df[header] = pd.to_numeric(df[header], errors = 'coerce')
    
CA_means = df[['CA_Native_Mean','CA_Implant_Mean']]
CA_errors = df[['CA_Native_Error','CA_Implant_Error']]

CP_means = df[['CP_Native_Mean', 'CP_Implant_Mean']]
CP_errors = df[['CP_Native_Error', 'CP_Implant_Error']]

CA_means.plot.bar(yerr=CA_errors)
CP_means.plot.bar(yerr=CP_errors)

plt.show()

这是我的数据框的样子:

   Specimen  CA_Native_Mean  CA_Implant_Mean  CP_Native_Mean  CP_Implant_Mean  \
0         1               1         0.738366               1         1.087530
1         2               1         0.750548               1         1.208398
2         3               1         0.700343               1         1.394535
3         4               1         0.912814               1         1.324024
4         5               1         1.782425               1         1.296495
5         6               1         0.415147               1         0.479259
6         7               1         0.934014               1         1.084714
7         8               1         0.526591               1         0.873022
8         9               1         1.409730               1         2.051518
9        10               1         1.745822               1         2.134407

   CA_Native_Error  CA_Implant_Error  CP_Native_Error  CP_Implant_Error
0                0          0.096543                0          0.283576
1                0          0.076927                0          0.281199
2                0          0.362881                0          0.481450
3                0          0.400091                0          0.512375
4                0          2.732206                0          1.240796
5                0          0.169731                0          0.130892
6                0          0.355951                0          0.272396
7                0          0.258266                0          0.396502
8                0          0.360461                0          0.451923
9                0          0.667345                0          0.404856

如果我运行代码,我得到如下数字:

我的问题是:

  1. 你能告诉我如何让误差线出现在数字中吗?
  2. 如何将索引(x 轴的值)从 0-9 更改为 1-10?

非常感谢!

此致, 阿诺德 A.

快完成了!

  1. 为了让您的误差线显示在图中,yerr 中的列名应该与条形图中的数据相匹配。尝试重命名 CA_errors

  2. 要更改 x 标签,请尝试 ax.set_xticklabels(df.Specimen);


_, ax= plt.subplots() 
CA_means = df[['CA_Native_Mean','CA_Implant_Mean']] 
CA_errors = df[['CA_Native_Error','CA_Implant_Error']].\ 
                rename(columns={'CA_Native_Error':'CA_Native_Mean', 
                                'CA_Implant_Error':'CA_Implant_Mean'}) 
CA_means.plot.bar(yerr=CA_errors, ax=ax) 
ax.set_xticklabels(df.Specimen);
</pre>