如何在pandas或matplotlib中绘制两个yaxis上的数据?

2024-06-10 22:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它是FER(面部情绪识别)和情绪预测的组合

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

我想简单解释一下下面的截图。让我们考虑问题值为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-')

我尝试的代码的绘图

image

我希望得到如下输出:

image

数据集的屏幕截图

dataset


Tags: 数据get时间水平绘制代表onequestion
1条回答
网友
1楼 · 发布于 2024-06-10 22:26:50

您应该从原始数据帧而不是分组数据帧绘制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)

但是要明白,这可能不会让你完全达到你想要的结果——可能需要更多的过滤或排序

相关问题 更多 >