我正在使用 matplotlib plot
命令在 python 中绘制 pandas 系列(即 series.plot()
,其中 series
是我的系列)。该系列部分内容如下:
(1, 1.1] 0.000000
(1.1, 1.2] 0.000000
(1.2, 1.3] 0.000000
(1.3, 1.4] 0.003115
(1.4, 1.5] 0.002625
(1.5, 1.6] 0.000000
(1.6, 1.7] 0.001464
... ...
(4.9, 5.0] 0.737385
Name: series, dtype: float64
我的数据框的绘图是 shown here (本例中的红线)。我希望 x 轴从 1.0 到 5.0,而不是显示 bin 类别。我怎样才能实现这个目标?使用 plt.xticks 似乎不起作用。
最佳答案
该系列从何而来?通常,我有一个由连续值列组成的大数据框 X
和Y
,然后定义X-bins
s 根据 X
值(value)观。之后,按X-bins
分组计算 Y
的平均值(或加权平均值、总和或任何其他聚合函数)获得像你这样的系列。如果是这样的话,我建议计算 X
的平均值在此过程中并绘制平均值 X
而不是X-bins
。这比采用箱的左/右端点或中点进行绘图更精确。例如,
df['Xbin'] = pd.cut(df['X'], np.arange(0,10,0.1))
而不是
ser = df.groupby('Xbin')['Y'].mean()
ser.plot()
做
df2 = df.groupby('Xbin')[['X','Y']].mean()
df2.plot(x='X', y='Y')
关于python - 绘图时将 pandas (python) 分类 x 轴转换为连续值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947522/