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

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很