繁体   English   中英

如何在 pandas 或 matplotlib 的两个 y 轴上绘制数据?

[英]How to plot the data on two y-axis in pandas or matplotlib?

我有一个数据框,它结合了 FER(面部情绪识别)和情绪预测

现在,情绪预测数据集有两列 - 问题和预测。 问题代表三个值 [1 - 激活; 2 - 愉悦; 5- Stress] 并且预测列也有三个值 [0 - Low; 1 - 中等; 2 - 高]。 索引由时间戳组成。

我想对下面的屏幕截图3进行简要说明。 让我们考虑第三行,其中问题值为 5,预测值为 1。这表示中 (1) 级的压力 (5)。

如何随时间绘制问题值的预测? 我试图这样做,但我只得到一条线。

d = one.groupby('question')
dunk1 = d.get_group(1)
fig, ax1 = plt.subplots(figsize = (20,5))
x = one.index
y = one.prediction
ax1.plot(x,y,'r-')

我尝试的代码图

图片

我希望获得类似于以下内容的输出:

图片

数据集截图

数据集

您正在从原始数据帧而不是分组数据帧中绘制xy ,您应该这样做

d = one.groupby('question')
dunk1 = d.get_group(1)
fig, ax1 = plt.subplots(figsize = (20,5))
x = dunk1.index
y = dunk1.prediction
ax1.plot(x,y,'r-')

或者绘制所有三个问题组

d = one.groupby('question')
fig, ax = plt.subplots(figsize = (20,5))
for k in d.groups.keys():
    group = d.get_group(k)
    ax.plot(group.index, group.prediction)

但是请理解,这可能无法让您一直获得想要的结果 - 可能需要更多的过滤或排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM