这是我的数据集:
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'female': [0, 1, 1, 0, 1],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, 2, 3],
'postTestScore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'female', 'preTestScore', 'postTestScore'])
我是绘制数据的新手,在这里有点迷失了。我想为每个人画一条线,其中x标记是preTestScore
和postTestScore
,而y标记则是从0到100(可能的测试分数范围)。
我当时以为我可以做一个散点图,但那时我不知道如何连接点。
答案 0 :(得分:0)
我一直在寻找坡度。谢谢@mostlyoxygen
x = df.loc[:, "preTestScore":"postTestScore"]
x["full_name"] = df["first_name"] + " " + df["last_name"]
num_students = x.shape[0]
num_times = x.shape[1] - 1
plt.xlim(0, 1)
plt.ylim(0, 100)
plt.xticks(np.arange(2), ["perTestScore", "postTestScore"])
plt.title("Score changes after Test taking")
plt.ylabel("Testscore")
for row in x.values:
plt.plot([0, 1], [row[0], row[1]], label=row[2])
plt.legend(loc="best")
plt.show()