引入依赖
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
显示中文、负号、字体大小、指定子图位置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题
plt.rcParams['font.size'] = 18
ax = plt.axes([0.1, 0.1, 0.8, 0.8])
数据预处理
data = pd.read_csv('./study_performance.csv')
data['average_score'] = data[['math_score', 'reading_score', 'writing_score']].mean(axis=1)
math_scores = data['math_score']
average_scores = data['average_score']
绘制散点图
plt.scatter(math_scores, average_scores, label='Data Points')
p1 = np.polyfit(math_scores, average_scores, 1)
p1_line = np.poly1d(p1)
plt.plot(math_scores, p1_line(math_scores), 'r-', label='Linear Fit')
p2 = np.polyfit(math_scores, average_scores, 2)
p2_line = np.poly1d(p2)
x_fit = np.linspace(min(math_scores), max(math_scores), 100)
plt.plot(x_fit, p2_line(x_fit), 'g--', label='Quadratic Fit')
plt.title('The effect of math scores on average scores')
plt.xlabel('Average')
plt.ylabel('Math_Score')
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.show()
效果图
