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

在这里插入图片描述

努力是为了不平庸~

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

目录

时间趋势可视化-柱形图

第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 plt

hot_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 plt

hot_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 *********#

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JLINK使用及问题

一、安装:安装过程选择好文件夹,过程中一直默认就行,如果之前安装的有其他版本,在最后一步需要多注意一下,或者不注意,直接默认选中的就行。 二、使用: 在官网下载的J-Link V7.96i&#xff0c…

视频码流分析工具

一、VQ Analyzer 在线使用说明: https://vicuesoft.com/vq-analyzer/userguide/ ref: Video Analyzer and Streaming Tester Software – VQ Analyzer HEVC 分析工具 - 懒人李冰 推荐一个开源且跨平台的免费码流分析软件YUView - 知乎

【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型

【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型 前言 今天来写一个简单的ernie-c#的例子,主要参考了百度智能云的例子,然后自己改了改,学习了ERNIE模型的鉴权方式,数据流的格式和简单的数据解析,实…

【漏洞复现】智慧校园(安校易)管理系统 FileUpProductupdate.aspx 任意文件上传漏洞

0x01 产品简介 "安校易"是银达云创公司基于多年教育市场信息化建设经验沉淀,经过充分的客户需求调研,并依据国家"十三五”"教育信息化建设规范而推出的综合互联网教育信息化解决方案。“安校易“以物联网技术为基础,以学…

民国漫画杂志《时代漫画》第19期.PDF

时代漫画19.PDF: https://url03.ctfile.com/f/1779803-1248634637-c04860?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

oracle怎么处理json格式

向数据库导入json相关jar包 loadjava -r -f -u bsuser/XXXX192.168.10.31/bsorcl json.jar 要删除的话,删除指定jar dropjava -u bsuser/XXXX192.168.10.31/bsorcl json.jar select * from user_java_classes 然后我们就可以取到json串中任意节点的值

UWB论文:Introduction to Impulse Radio UWB Seamless Access Systems(2):脉冲;超宽带;测距;定位

3) 测距/接收器 像全球定位系统(GPS)这样的系统依赖于单向测距One Way Ranging(OWR),其中多个卫星(代表固定节点,称为锚点anchors)定期传输同步的无线电数据包集合,这允许…

stream( ).collect ( Collectors.groupingBy ( ) ) 的用法

文章目录 第一种解释1、基本用法2、指定值收集器3、多级分组4、常见应用场景和用处 第二种解释1、基本语法2、示例3、更复杂的用法 第一种解释 Collectors.groupingBy 是 Java 8 引入的 Stream API 中的一个收集器(Collector),它用于将流&am…

AI - 各类AI针对Excel分析对比

一个水果销量表,Excel包含多个年份sheet,需要提取某个品种的水果每年的销量,看看几个AI的分析结果吧 1、文心一言3.5(不支持Excel) 不支持上传Excel文件 2、 通义千问2.5(完成★) 顺利完成…

web前端学习笔记11

11. CSS3高级特效 11.1 CSS3变形 CSS3变形是一些效果的集合, 如平移、旋转、缩放、倾斜效果 每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化 语法 transform:[transform-function] ; /* 设置变形函数,可以是一个,也可以是多…

js积累三(web页面一段时间未操作,退出登录)

//核心代码,已封装function CountDownLogout() {/* if 30 seconds no operation then logout */var maxTime 30; // seconds,可自行修改时长var time_time maxTime;/* 鼠标点击事件 */$(document).mousedown(function(){time_time maxTime; //…

重学java 42.多线程 等待唤醒机制案例分析

Strength is built under a heavy load,I am expecting to pick up all of my loads and travel on. —— 24.5.24 章节重点 1.会用wait和notify两个方法 2.会使用Lock锁对象 3.会利用Cal1able接口实现多线程 4.会使用线程池完成多线程 等待唤醒案例分析(线程之间的…

视频监控汇聚平台LntonCVS通过GB/T28181国标协议实现视频监控平台的级联方案

近年来,随着网络视频监控应用范围的拓展,越来越多的政府部门和跨区域行业单位对视频监控的需求已经不局限于本地联网监控。他们正在探索在原有的本地联网监控基础上,建设省级乃至全国范围内的跨区域监控联网,以全面打造数据共享平…

这所211专硕22408复试线310分,学硕收调剂!辽宁大学计算机考研考情分析!

辽宁大学信息学院下设计算机科学与技术、电子信息科学与技术、通信工程、信息管理与信息系统、软件工程5个本科专业,有计算机软件与理论、计算机应用技术2个硕士学位授权点,软件工程和计算机技术两个专业硕士学位点,1个计算机应用研究所、1个…

【机器学习300问】94、什么是多任务学习?

一、多任务学习的定义 多任务学习(Multi-Task Learning, MTL)是一种机器学习范式,它允许一个模型同时学习执行多个相关但不完全相同的任务。这种方法的核心是:通过共享表示或权重,不同的任务可以在学习过程中相互促进&…

金蝶「起舞」,AI进化

能清晰感受到的是,金蝶仍然在不断进化,甚至伴随着AI时代的到来,它的进化信号愈发明显。 这些进化对应的具体动作是,把过去多年的服务模型整合成AI模型,把具体的服务“工艺”整理成流程编排能力,以及从740…

音视频及H264/H256编码相关原理

一、音视频封装格式原理: 我们播放的视频文件一般都是用一种封装格式封装起来的,封装格式的作用是什么呢?一般视频文件里不光有视频,还有音频,封装格式的作用就是把视频和音频打包起来。 所以我们先要解封装格式&#…

ECharts实现地图飞线

echarts版本:https://echarts.apache.org/zh/changelog.html v5.x.x版本:不提供china.js和china.json文件 v4.x.x版本:使用npm安装echarts,默认包含china.js和china.json文件 目录 一、Html工程 二、vue工程 三、vue工程 四、矢…

【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误

起因:使用huggingface构建一个问答程序时出现的问题。 错误内容: 分析: 查看代码发现,HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决: 安装sentenc…

windows平台vcpkg安装

1. 克隆vcpkg仓库 git clone https://github.com/microsoft/vcpkg 2.运行bootstrap-vcpkg.bat下载vcpkg.exe 3.运行验证 4.使用VCPKG安装OPENSSL 5.安装成功