我正在尝试在 pandas 中将数据框的一列与另一列进行对比,并得到了意想不到的结果。我将其追踪到在绘图之前排序的 x 值。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure();
data = np.array([[3.2, 3.5, 2.4, 3.5, 3.4, 4.3, 5.4, 3.9, 5.7, 7.4],
[-0.5, 0.2, 0.1, -0.7, 0.0, -1.0, -1.3, -0.3, -0.3, -0.6]])
df = pd.DataFrame(data.T,columns=['A', 'B'])
df.plot(x='A', y='B')
#try again in matplotlib
plt.plot(np.asarray(df['A']),np.asarray(df['B']),'r-')
plt.plot(data[0,:],data[1,:],'go')
data[0,:].sort()
plt.plot(data[0,:],data[1,:],'co')
{图片已删除无法发布}
蓝色图(来自 df.plot)在绘图前对 A 列进行了排序。红色图是从 matplotlib 绘制的原始数据。
显然我可以通过使用 matplotlib 得到我想要的图,但是数据框图是出乎意料的。