实验2—美国犯罪率数据散点图绘制Educoder

该文提供了两个Python代码示例,用于根据2005年的美国各州犯罪率数据绘制散点图。首先,基础的散点图绘制排除了华盛顿特区和全美平均值,使用matplotlib库,设置x轴和y轴范围,并用特定颜色的星号表示数据点。其次,通过statsmodels库实现了局部加权回归,增强了数据的视觉呈现,并添加了中文标题。最后,图像被保存为PNG格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 美国犯罪率数据散点图绘制——散点图的基本绘制步骤

任务描述
本关任务:根据实训提供的2005年美国各州的犯罪率绘制散点图,并存为 PDF 或 png 文件。

相关知识
为了完成本关任务,你需要掌握:
散点图绘制的基本步骤;
散点图展示优化。

编程要求
根据提示,在右侧编辑器 Begin - End 区间补充代码,过滤掉华盛顿特区和全美平均值数据,绘制散点图,其中 x 轴和 y 轴均从0开始,点用星号表示,颜色为"#00CC88"。
测试说明
平台会对你编写的代码进行测试,如果你的图形与正确答案图形一致,则通关。
图片预期输出示例:
在这里插入图片描述
代码展示:

# -*- 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轴标签
    
    #获取没有全美平均值和华盛顿特区的犯罪率数据
    crime2=crime[~crime['state'].isin(['District of Columbia','United States'])]   
     
    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_1/crime.png') #保存为png格式
    plt.close() #关闭画布窗口

2. 美国犯罪率数据散点图绘制——局部加权回归

任务描述
本关任务:根据美国犯罪率数据,综合前一关知识,实现局部加权回归,绘制散点图并保存为 PDF 或 png 文件。

相关知识
为了完成本关任务,你需要掌握:

编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,采用美国犯罪率数据绘制散点图,过滤掉华盛顿特区和全美平均值数据,绘制散点图,其中 x 轴和 y 轴均从0开始,点用星号表示,颜色为#00CC88,对数据进行局部加权回归,并为图片添加标题,注意标题为汉字黑体,字号大小为16,将图片保存为 png 格式。设置画布尺寸为8.0*4.0。

测试说明
平台会对你编写的代码进行测试,如果你的图形与正确答案图形一致,则通关。
图片预期输出示例:
在这里插入图片描述
代码展示:

# -*- 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() #关闭画布窗口


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这篇博客保熟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值