python - 绘图时将 pandas (python) 分类 x 轴转换为连续值

标签 python pandas matplotlib plot

我正在使用 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 似乎不起作用。

最佳答案

该系列从何而来?通常,我有一个由连续值列组成的大数据框 XY ,然后定义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/

相关文章:

python - 双重包装斐波那契

python - 如何在多级数据帧上正确使用 .loc?

python - 如何将标签对齐到极坐标条形图的内边缘

python - 从 matplotlib 3D Pane 中删除边框

python - OpenCV错误-python中的Imread语句

python - jinja2 的 vim 语法突出显示?

python - 旗鱼 : how to run on computer without gpu

python - 分组后计算数据框中某些值的数量

python - 如何汇总每 5 秒的每一列时间序列数据

Python matplotlib,获取xtick标签的位置