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

时间:2016-06-27 04:03:19

标签: python pandas plot errorbar

我需要你帮助在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

如果我运行代码,我得到以下数字: plotting CA_means, but CA_errors are not shown plotting CP_means, but CP_errors are not shown

我的问题是:

  1. 您能告诉我如何使错误条显示在图中吗?
  2. 如何将索引(x轴的值)从0-9更改为1-10?
  3. 非常感谢!

    此致 阿诺德A.

1 个答案:

答案 0 :(得分:2)

你快到了!

  1. 要使您的错误栏显示在图中,yerr中的列名称应与条形图中的数据名称相匹配。尝试重命名CA_errors

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

  3. 
    _, 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);
    

    enter image description here