# -*- coding: utf-8 -*-
import pandas as pd #用于生成满足绘图要求的数据格式
from matplotlib import pyplot as plt#用于绘制散点图
import statsmodels.api as sm #用于局部加权回归
crime=pd.read_csv(r"matplotlibScatter/csv/crimeRatesByState2005.csv") #返回值为二维标记数据结构 DataFrame
def plot():
# ********* Begin *********#
fig,ax=plt.subplots() #subplots返回画布和子图
ax.set_xlabel("crime murder", fontsize=12) #设置x轴标签
ax.set_ylabel("crime burglary", fontsize=12) #设置y轴标签
ax.set_title("美国谋杀率和入室盗窃率",fontproperties="SimHei", fontsize=16) #设置图像的标题
#获取没有全美平均值和华盛顿特区的犯罪率数据
crime2=crime[~crime['state'].isin(['District of Columbia','United States'])]
#对数据采用默认值进行平滑处理,返回值为一个二维数组
lowess = sm.nonparametric.lowess(crime2["burglary"], crime2["murder"])
ax.plot(lowess[:, 0], lowess[:, 1]) #将二维数组绘制出来
ax.set_xlim(0,10) #x轴范围从0到10
ax.set_ylim(0,1200) #y轴范围从0到1200
ax.plot(crime2["murder"],crime2["burglary"],"*",color="#00CC88") #绘制散点图
plt.show() #展示图像
# ********* End *********#
plt.savefig('matplotlibScatter/studentanswer/level_2/crime.png') #保存为png格式
plt.close() #关闭画布窗口
美国犯罪率数据散点图绘制——局部加权回归
于 2024-06-06 10:11:08 首次发布