数据可视化技术头歌测试合集

在这里插入图片描述

努力是为了不平庸~

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰

目录

时间趋势可视化-柱形图

第1关:“大胃王”比赛数据柱形图绘制——绘制柱形图的基本步骤

任务描述

相关知识

观察和处理数据

绘制柱形图

编程要求

测试说明

 第2关:“大胃王”比赛数据柱形图绘制——柱形图展示优化

任务描述

相关知识

对柱形图进行美化

将柱形图保存为 PDF 文件或 png 文件

编程要求

测试说明

时间趋势可视化-柱形图

第1关:“大胃王”比赛数据柱形图绘制——绘制柱形图的基本步骤

任务描述

本关任务:根据实训提供的“大胃王”比赛数据绘制柱形图,熟悉柱形图绘制的基本步骤。

相关知识

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

  1. 观察和处理数据;
  2. 绘制柱形图的基本步骤。
观察和处理数据

先导入matplotlibpandas,用pandas中的read_csv()方法读取 csv 格式文件。

  1. import pandas as pd #导入pandas,用于生成满足绘图要求的数据格式
  2. from matplotlib import pyplot as plt #导入matplotlib,用于绘制柱形图
  3. from matplotlib.backends.backend_pdf import PdfPages #用于将图片保存成pdf
  4. hot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv") #返回值为二维标记数据结构DataFrame
  5. hot_dog.head() #返回前五行数据

让我们先看看数据文件的前5行内容:

YearWinnerDogs eatenCountryNew record
1980Paul Siederman & Joe Baldini9.1United States0
1981Thomas DeBerry9.1United States0
1982Steven Abrams11.0United States0
1983Luis Llamas19.5Mexico0
1984Birgit Felden9.5Germany0

这个数据展示的是自1980年开始,每年吃热狗大赛的冠军姓名,冠军吃掉热狗的数量,冠军的国籍,以及是否打破纪录(0表示没有破纪录,1表示破纪录)。

绘制柱形图

首先简单介绍一下绘制柱形图的 bar 函数:

  1. matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)[source]

参数:

  • x:x 坐标,数据类型 intfloat
  • height:柱形高度,数据类型 intfloat
  • width:柱形宽度,默认 0.8,范围 0 - 1 之间
  • bottom:条形的起始位置,也是 y 轴的起始坐标
  • align:条形的中心位置,centeredge边缘
  • color:条形的颜色,rbg#123465等,默认 b
  • edgecolor:边框的颜色,同上
  • linewidth:边框的宽度,默认无,int 类型
  • tick_label:下标的标签,可以是元组类型的字符组合
  • log:y 轴使用科学计算法表示,bool 类型
  • orientation:是竖直条还是水平条,竖直:vertical,水平条:horizontal

其中,最基本和最常用的是x, height, widthcolor四个参数。 接下来让我们开始画一张不同年份冠军吃掉热狗数量的柱形图。

  1. fig, ax = plt.subplots() #subplots返回画布和子图
  2. axis.bar(hot_dog["Year"],hot_dog["Dogs eaten"]) #绘制柱形图,第一个参数为x轴变量,第二个参数为y轴变量
  3. plt.show() #显示图像

此时生成的图像如下图1所示:

                                                        图1 默认生成的柱形图

编程要求

根据提示,在右侧编辑器 Begin-End 区间补充代码,绘制一张不同年份冠军吃掉热狗数量的柱形图。

测试说明

平台会对你编写的代码进行测试,如果你的图形与正确答案图形一致,则通关。

# -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plthot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv")def plot(): # ********* Begin *********#fig, ax = plt.subplots() #subplots返回画布和子图  ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"]) #绘制柱形图,第一个参数为x轴变量,第二个参数为y轴变量  plt.show()  #显示图像 # ********* End *********#plt.savefig('matplotlib_bar/studentfile/studentanswer/level_1/US.png')plt.close()

 第2关:“大胃王”比赛数据柱形图绘制——柱形图展示优化

任务描述

本关任务:根据实训提供的“大胃王”比赛数据绘制柱形图,并存为 PDF 或 png 文件。

相关知识

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

  1. 对柱形图进行美化;
  2. 将柱形图保存为 PDF 文件或 png 文件。
对柱形图进行美化

关卡1中的柱形图看起来平平无奇,打破记录的年份这一信息也没有体现,如果我们需要突出打破记录的年份呢?如何用不同的颜色进行表示?此外,系统默认的颜色饱和度很高,能选择更赏心悦目的颜色吗?当然可以!

突出破纪录的年份 在关卡1的基础上,这一步我们可以写一个函数,根据年份是否打破纪录,赋予不同的颜色,然后把各个年份应显示的颜色放入一个列表中。

  1. def newRecordColor():
  2. "打破记录的年份显示为粉红色,其余年份为灰绿色"
  3. list=[]
  4. for i in hot_dog["New record"]:
  5. if i==1:
  6. list.append("#DB7093") #打破记录的年份显示为粉红色
  7. else:
  8. list.append("#5F9F9F") #其余年份显示为灰绿色
  9. return list

别忘了将代码

  1. axis.bar(hot_dog["Year"],hot_dog["Dogs eaten"])

修改为

  1. ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"],color=newRecordColor()) #添加指定的颜色

光秃秃的柱形图并不能让别人快速理解数据的含义,因此,我们应当为柱形图添加必要的文字说明:

  1. ax.set_xlabel("Year") #设置x轴标签
  2. ax.set_ylabel("Dogs Eaten") #设置y轴标签
  3. ax.set_title("Hotdog game scores 1980-2010") #设置标题
  4. ax.set_xlim(1979,2011) #设置x轴数据限值

此时生成的图像如下图1所示:

图1 突出打破纪录年份后的柱形图

调整柱子的间距 图1看起来还不错,只是柱子之间太拥挤了,可以修改宽度,将代码:

  1. ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"],color=newRecordColor())

修改为

  1. ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"],width=[0.6],color=newRecordColor()) #添加指定的宽度

然后修改画布的尺寸,添加代码:

  1. plt.rcParams['figure.figsize'] = (8.0, 4.0) #设置figure_size尺寸

此时生成的图像如下图2如所示:

                                                              图2 美化后的柱形图

将柱形图保存为 PDF 文件或 png 文件

如果后续想要用 Illustrator 对图片进行美化,可以将图片保存为 PDF 格式,添加代码:

  1. pdf =PdfPages('matplotlib_bar/studentfile/studentanswer/level_2/hotdog.pdf') #设置pdf保存的路径和文件名
  2. pdf.savefig(fig) #将画布内容保存为PDF
  3. plt.close() #关闭画布窗口
  4. pdf.close() #关闭PDF文件

如果想将图片保存为 png 格式文件,则添加代码:

  1. plt.savefig('matplotlib_bar/studentfile/studentanswer/level_2/hotdog.png') #保存png文件
  2. plt.close() #关闭画布窗口
编程要求

根据提示,在右侧编辑器 Begin-End 区间补充代码,绘制柱形图,并突出美国人获胜的年份。其中美国人获胜的年份显示为粉红色(#DB7093),其余年份显示为灰绿色(#5F9F9F),画布大小等设置与上文保持一致。

测试说明

平台会对你编写的代码进行测试,如果你的图形与正确答案图形一致,则通关。 图片预期输出示例:


开始你的任务吧,祝你成功!

# -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plthot_dog = pd.read_csv(r"matplotlib_bar/csv/hot-dog-contest-winners.csv")def plot(): # ********* Begin *********#fig, ax = plt.subplots() #subplots返回画布和子图  ax.bar(hot_dog["Year"],hot_dog["Dogs eaten"],width=[0.6],color=unitedStatesColor()) #添加指定的宽度ax.set_xlabel("Year") #设置x轴标签  ax.set_ylabel("Dogs Eaten") #设置y轴标签  ax.set_title("Hotdog game scores 1980-2010") #设置标题  ax.set_xlim(1979,2011) #设置x轴数据限值  plt.rcParams['figure.figsize'] = (8.0, 4.0) #设置figure_size尺寸  # ********* End *********#plt.savefig('matplotlib_bar/studentfile/studentanswer/level_2/US.png')plt.close()def unitedStatesColor():# ********* Begin *********#list=[]  for i in hot_dog["Country"]:  if i=='United States':  list.append("#DB7093") #打破记录的年份显示为粉红色  else:  list.append("#5F9F9F") #其余年份显示为灰绿色  return list  # ********* End *********#

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/330199.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

获得 AI Applied Skills 凭证:微软在线评估认证的注意事项

在你踏上微软的亚洲AI奥德赛之旅,完成基础课程学习后,你可以继续进行相应的评估,在交互式实验室体验中完成一系列任务,通过线上即时评估赢得认证。通过本文的介绍,可以帮助你了解评估认证的一些细节以及注意事项&#…

HCIP【VLAN综合实验】

目录 一、实验拓扑图: 二、实验要求: 三、实验思路: 四、实验步骤: 1、在交换机SW1,SW2,SW3配置VLAN和各个接口对应类型的配置 2、在路由器上面配置DHCP服务 3、在PC端进行测试(PC都要开启DHCP服务)…

python-鸡兔同笼问题:已知鸡和兔的总头数与总脚数。求笼中鸡和兔各几只?

【问题描述】典型的鸡兔同笼问题。 【输入形式】输入总头数和总脚数两个实数:h,f 【输出形式】笼中鸡和兔的个数:x,y 【样例输入】16 40 【样例输出】鸡12只,兔4只 【样例说明】输入输出必须保证格式正确。…

Python筑基之旅-MySQL数据库(三)

目录 一、数据库操作 1、创建 1-1、用mysql-connector-python库 1-2、用PyMySQL库 1-3、用PeeWee库 1-4、用SQLAlchemy库 2、删除 2-1、用mysql-connector-python库 2-2、用PyMySQL库 2-3、用PeeWee库 2-4、用SQLAlchemy库 二、数据表操作 1、创建 1-1、用mysql-…

jwtcracker下载安装出现错误

1.jwtcracker 用于爆破jwt秘钥 2.下载 ubuntu/kali安装c-jwt-cracker及使用方法-CSDN博客 参考这个大佬写的 但是我在这里出现了这个问题 显示Cannot initialize the default message digest sha256, aborting 我实在找不出来哪里有问题,所以直接换成docker …

centos7和centos8安装mysql5.6 5.7 8.0

https://dev.mysql.com/downloads/repo/yum/ 注意构造下http://repo.mysql.com/mysql-community-release-el*-*.noarch.rpm 【以centos7为例】 安装mysql5.6 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5…

C++进阶:C++11(列表初始化、右值引用与移动构造移动赋值、可变参数模版...Args、lambda表达式、function包装器)

C进阶:C11(列表初始化、右值引用与移动构造移动赋值、可变参数模版…Args、lambda表达式、function包装器) 今天接着进行语法方面知识点的讲解 文章目录 1.统一的列表初始化1.1{}初始化1.2 initializer_listpair的补充 2.声明相关关键字2.1a…

Axure RP 9 for Mac/win:重新定义交互原型设计的未来

在当今数字化时代,交互原型设计已成为产品开发中不可或缺的一环。Axure RP 9作为一款功能强大的交互原型设计软件,凭借其出色的性能和用户友好的界面,赢得了广大设计师的青睐。 Axure RP 9不仅支持Mac和Windows两大主流操作系统,…

重构2:重构的原则之笔记

最近在看重构2:改善既有代码的设计这本书,对于代码重构指导非常有帮助,然后也是做个笔记记录下,以下是我阅读本书的前两章的时候整理的思维导图:

VTK9.2.0+QT5.14.0绘制三维显示背景

背景 上一篇绘制点云的博文中,使用的vtkCameraOrientationWidget来绘制的坐标轴,最近又学习到两种新的坐标轴绘制形式。 vtkOrientationMarkerWidget vtkAxesActor 单独使用vtkAxesActor能够绘制出坐标轴,但是会随着鼠标操作旋转和平移时…

中文信息期刊投稿邮箱

《中文信息》杂志是国家新闻出版总署批准的国家级刊物(月刊),国内外公开发行,大十六开印刷。本刊主要反映我国中文信息处理的学术水平,重点刊登科技、经济、教育等领域的基础理论、科研与应用技术的学术论文&#xff0…

火山引擎边缘云亮相 Force 原动力大会,探索 AI 应用新范式

5月15日,2024 春季火山引擎 FORCE 原动力大会在北京正式举办。大会聚焦 AI 主题,以大模型应用为核心、以 AI 落地为导向,展示了火山引擎在大模型、云计算领域的实践应用,携手汽车、手机终端、金融、消费、互联网等领域的专家和企业…

5.1 Go 函数的定义与调用

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

sharded jedis pipelined 执行后 数据并未存入redis

前言 因为历史原因,在某个同步菜单操作的方法中先清除缓存,然后在初始化缓存。本来很正常的逻辑,但是这个清除是db查询获取所有的菜单 然后循环一条条删除 然后在db查询有效的菜单操作 在循环一条条插进去 经统计这个菜单操作大概有个7千个 …

Application Development using Large Language Models笔记

诸神缄默不语-个人CSDN博文目录 这是2023年NeurIPS Andrew Ng和Isa Fulford做的tutorial,关于如何用LLM来开发新产品的技术和思路:NeurIPS Tutorial Application Development using Large Language Models 文章目录 1. LLM基础2. 提示工程技巧3. 微调4.…

编程基础:掌握运算符与优先级

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、运算符的基石:加减乘除 二、比较运算符:判断数值大小 三、整除…

C++语言学习(五)—— 类与对象(一)

目录 一、类类型的定义 二、类成员的访问控制 2.1 什么是"类内"和"类外" 2.2 对于访问控制属性的说明 三、类类型的使用 3.1 进行抽象 3.2 声明类 3.3 实现类 3.4 使用类 四、构造函数的引入 五、析构函数的引入 六、重载构造函数的引入 6.1 …

Java类和对象(五)—— 抽象类、接口、Object类和内部类

抽象类 在继承体系下,父类有些方法可能是要被重写的,如果我们事先就知道某些方法需要重写的话,我们可以不用在父类里面具体实现这个方法,这时候我们会用到抽象方法,这时候我们会用到关键字abstract关键字来修饰 publ…

【人工智能】模型性能评估

模型性能衡量介绍 混淆矩阵 混淆矩阵(Confusion Matrix) TP(真阳性):预测为阳性,且预测正确。 TN(真阴性):预测为阴性,且预测正确。 FP(伪阳性):预测为阳性,但预测错误,又称型一误…

Vue3骨架屏(Skeleton)

效果如下图:在线预览 APIs 参数说明类型默认值必传animated是否展示动画效果booleantruefalsebutton是否使用按钮占位图boolean | SkeletonButtonPropsfalsefalseavatar是否显示头像占位图boolean | SkeletonAvatarPropsfalsefalseinput是否使用输入框占位图boolea…