通过折线图在matplotlib中绘制平均值?

时间:2020-05-09 20:56:13

标签: python pandas matplotlib

我对编码领域还很陌生,一直在尝试使自己熟悉用于数据分析的代码。我试图弄清楚如何在此线图中插入数据集的平均值。它包含了多天内来自多个主题的数据,我很想知道是否有什么方法可以对数据或线条进行“平均”处理,然后将其插入到此代码中,以便在图表上显示。我试过搜索堆栈溢出和matplotlib.org,但是没有达到要求。任何帮助,将不胜感激!

**为进一步说明:共有9个主题,每个主题的准确度范围从〜50%-100%。数据在excel中编译,该excel中有“天”(1-22)和“主题”行(在给定的日期具有相应的准确度,例如,第1天为50%,第2天为65%,等等)。

这是我的代码:

import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_excel('data.xlsx')

plt.figure(figsize=(10, 7))
Day = df['Day']
Accuracy = df[['Subject 1', 'Subject 2', 'Subject 3', 'Subject 4', 'Subject 5', 'Subject 6', 'Subject 7', 'Subject 8', 'Subject 9']]
plt.plot(Day, Accuracy, alpha = 0.3)
plt.axis([1, 22, 0.55, 1])
plt.axhline(y=0.8, color='black', linestyle='--', alpha=0.3)
plt.xlabel('Day')
plt.ylabel('Accuracy')
plt.title("Days to Acquisition by Subject")
ax = plt.subplot()
ax.set_xticks(Day)
plt.show()

这就是我得到的: Graph with results

1 个答案:

答案 0 :(得分:0)

import pandas as pd 
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_excel('data.xlsx')

plt.figure(figsize=(10, 7))
Day = df['Day']
Accuracy = df[['Subject 1', 'Subject 2', 'Subject 3', 'Subject 4', 'Subject 5', 'Subject 6', 'Subject 7', 'Subject 8', 'Subject 9']]
Accuracy_mean = df[['Subject 1', 'Subject 2', 'Subject 3', 'Subject 4', 'Subject 5', 'Subject 6', 'Subject 7', 'Subject 8', 'Subject 9']].mean(axis=1)
plt.plot(Day, Accuracy, alpha = 0.3)
plt.plot(Day, Accuracy_mean)
plt.axis([1, 22, 0.55, 1])
plt.axhline(y=0.8, color='black', linestyle='--', alpha=0.3)
plt.xlabel('Day')
plt.ylabel('Average Accuracy')
plt.title("Days to Acquisition by Subject")
ax = plt.subplot()
ax.set_xticks(Day)
plt.show()