Pandas数据帧切片问题与pyplot结合使用

时间:2018-04-09 15:45:17

标签: pandas matplotlib object-slicing

我在使用pandas进行pyplot时遇到问题。 一方面,比例是错误的,因为y轴上的值10显示在1之前。

另一方面,我收到错误消息:

TypeError:不支持的操作数类型 - :' str'和' str'

使用yerr。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import pandas as pd

df=pd.read_table('TI_attachment.dat', header=0, sep='\s+')

fig, ax=plt.subplots(figsize=(20,10))
ax.errorbar(x=df.iloc[:, 0:1], y=df.iloc[:, 1:2], yerr=df.iloc[:, 2:3], color='black')
ax.set_xlabel('Simulation Time per window [ns]', size=25)
ax.set_ylabel('Free energy of binding [kcal/mol]', size=25)

ax.tick_params(axis='both', labelsize=25)
plt.tight_layout()
#plt.savefig('PMF.png', format='png')
#plt.show()

这就是TI_attachment.dat的样子:

#Weight of restraints (%), Accumulative work (in kcal/mol), SEM (in kcal/mol)
0.0000      0.00000      0.00000
0.0040      3.23161      0.78401
0.0080      3.76232      0.79356
0.0160      4.50989      0.82542
0.0240      4.86168      0.82490
0.0400      5.48672      0.82894
0.0550      6.02476      0.82931
0.0865      6.73611      0.83116
0.1180      7.20339      0.83305
0.1810      7.69373      0.83432
0.2440      8.16010      0.83487
0.3700      8.87930      0.83952
0.4960      9.25889      0.84035
0.7480      9.83864      0.84071
1.0000     10.28260      0.84107

enter image description here

1 个答案:

答案 0 :(得分:1)

我通过以不同的方式选择列来解决它:

 ax.errorbar(x=df.iloc[:, 0], y=df.iloc[:, 1], yerr=df.iloc[:, 2], color='black')