dhu 数据科学与技术 第6次作业

2023-11-20 19:30
文章标签 数据 技术 作业 科学 dhu

本文主要是介绍dhu 数据科学与技术 第6次作业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 简答题(共2题,100分)

  1. (简答题)
    2012—2020年我国人均可支配收入(单位:万元)为[1.47, 1.62, 1.78, 1.94, 2.38, 2.60,2.82, 3.07, 3.21]。按照要求绘制以下图形。

(1)模仿例4-1和例4-3,绘制人均可支配收入折线图(效果如图4-6所示)。数据点用小矩形标记、黑色虚线,并用注解标出最高点,图标题为“Income”,设置坐标轴标题,最后将图形保存为jpg文件。
在这里插入图片描述
图4-6 2012—2020年人均可支配收入(单位:万元)

(2)模仿例4-2,使用多个子图分别绘制人均可支配收入的折线图、箱形图及柱状图(效果如图4-7所示)。

【提示】

(1)本实验准备数据时可以使用Series对象或DataFrame对象。

(2)创建的3个子图分别使用(2,2,1)、(2,2,2)和(2,1,2)作为参数。

(3)使用plt.subplots_adjust()调整子图间距离,以便添加图标题。

在这里插入图片描述
图4-7 多子图展示各年度人均可支配收入
High-speed rail.csv

import matplotlib.pyplot as plt
from pandas import DataFrame
import numpy as np
import matplotlib# 1)
zhfont1 = matplotlib.font_manager.FontProperties(fname="C:\\python\\SourceHanSansSC-Bold.otf")
income=[1.47, 1.62, 1.78, 1.94, 2.38, 2.60, 2.82, 3.07, 3.21]
data=DataFrame({'income': income},index=['2012','2013','2014','2015','2016','2017','2018','2019','2020'])
plt.plot(income,marker = 's',linestyle = 'dotted',c='black')
plt.ylabel("Income(RMB Ten Thousand)")
plt.xlabel("Year")
plt.title("2012-2020 年人均可支配收入", fontproperties=zhfont1)
my_y_ticks = np.arange(0.0, 3.5, 0.5)
plt.yticks(my_y_ticks)
plt.annotate('Largest!',xy = (8,3.21),xytext = (6.1,2.6),arrowprops = dict(arrowstyle = '->',color = 'r'),color = 'r')
plt.grid()
plt.savefig(fname="C:\\python\\fig1",dpi=200,bbox_inches='tight')# 2)
fig=plt.figure(figsize = (10,6))ax1=fig.add_subplot(2,2,1)
data.plot(title = 'Line chart',legend = False,ax = ax1)
plt.xticks(range(0,9),['2012','2013','2014','2015','2016','2017','2018','2019','2020'])
plt.xlim(-0.5,8.5)
plt.xlabel('Year')
plt.ylabel('Income')ax2=fig.add_subplot(2,2,2)
data.plot(kind='box',title = 'Box-whisker plot',xticks = [],ax = ax2)
plt.xlabel('2012-2020')
plt.ylabel('Income')ax3=fig.add_subplot(2,1,2)
data.plot(kind='bar',title = 'Bar Chart',ax = ax3)
plt.xticks(range(0,9),['2012','2013','2014','2015','2016','2017','2018','2019','2020'])
plt.xlabel('Year')
plt.ylabel('Income')plt.subplots_adjust(wspace = 0.5,hspace = 0.5)
plt.show()
  1. (简答题)文件high-speedrail.csv中存放着世界各国高铁的情况,数据格式如表4-6所示,请对世界各国高铁的数据进行绘图分析。
    表4-6 high-speedrail.csv文件的数据格式
    在这里插入图片描述

(1)各国运营里程对比柱状图,标注China为“Longest”,如图4-22所示。

(2)各国运营里程现状和发展堆叠柱状图,如图4-23所示。
在这里插入图片描述
图4-22 各国高铁运营里程柱状图
图4-23.png
图4-23 各国高铁发展情况堆叠图

(3)各国运营里程占比饼图,其中China为扇形离开中心点,如图4-24所示。
在这里插入图片描述

图4-24 各国高铁运营里程分布饼图
【提示】

(1)从文件中读取数据时,使用第一列数据作为index。
data = pd.read_csv(‘High-speed rail.csv’, index_col =‘Country’)
例如,获取中国对应的数据行时,使用data [‘China’]。

import matplotlib.pyplot as plt
import pandas as pd
from pandas import DataFrame
import numpy as np
import matplotlibdata = pd.read_csv('C:\\python\\High-speed rail.csv',index_col='Country')# 1)
data['Operation'].plot(kind='bar',title = 'Operation Mileage',ylabel='Mileage(km)',rot = 45,xlabel='Country')
plt.annotate('Longest!',xy=(0,20000),xytext=(1,20000),arrowprops=dict(arrowstyle='->',color='r'),c='r')
plt.show()# 2)
data[['Operation','Under-construction','Planning']].plot(kind='barh',title = 'Global trends of high-speed rail',stacked=True,ylabel='Mileage(km)',rot = 0,legend=False)
plt.ylabel('Country')
plt.xlabel('Mileage(km)')
plt.show()# 3)
line=pd.read_csv('C:\\python\\High-speed rail.csv')
matplotlib.pyplot.pie(data['Operation'],labels=line['Country'],autopct='%0.1f%%',explode=(0.1,0,0,0,0,0),shadow=True,startangle = 60)
plt.show()

这篇关于dhu 数据科学与技术 第6次作业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/396889

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口