数据可视化-期末复习重点笔记

article/2025/10/1 3:48:50

文章目录

  • 前言
  • 一、绘制常见图形。
    • 1.1 sinx、cosx曲线图
    • 1.2 散点图
      • 1.2.1通过matplotlib实现
      • 1.2.2通过pyecharts实现
    • 1.3 柱形图
      • 1.3.1通过matplotlib实现
      • 1.3.2通过pyecharts实现
    • 1.4 柱形堆叠图
      • 1.4.1通过matplotlib实现
      • 1.4.2通过pyecharts实现
    • 1.5 折线图
    • 1.6 拟合曲线
    • 1.7 堆叠面积图
    • 1.8 雷达图
    • 1.9 饼图
  • 二、其他细节考点
    • 2.1在matplotlib中基本参数设置
    • 2.2 jupyter notebook两种渲染方式
    • 2.3 可视化步骤
    • 2.4 ggplot图层
    • 2.5 可视化作用
    • 2.6 简述直方图和柱形图的区别
    • 2.7 简述折线图和柱形图的区别
    • 2.8 简述爬取网络数据的过程。
    • 2.9 格式塔原则
  • 三、 总结

前言

期末可视化复习资料

划重点!!!
特别要重视1.1、1.2、1.8、1.9、2.2、2.4、2.5、2.6、2.7、2.8、2.9.
通过这些给定范围,再把题库选择、判断认真复习、一定可以取得好成绩。

一、绘制常见图形。

1.1 sinx、cosx曲线图

使用matplotlib进行绘制

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,4*np.pi) #np.pi=3.14
y = np.sin(x)
plt.rcParams['font.sans-serif']='SimHei'
plt.title('sin曲线')
plt.plot(x,y)
plt.show()

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,4*np.pi) #np.pi=3.14
y = np.cos(x)
plt.rcParams['font.sans-serif']='SimHei'
plt.title('cos曲线')
plt.plot(x,y)
plt.show()

在这里插入图片描述

1.2 散点图

以下分别使用matplotlib、pyecharts进行绘制

1.2.1通过matplotlib实现

import matplotlib.pyplot as plt
import csv
filename = "D:\\数据可视化\\flowingdata_subscribers.csv"
datay = []
with open(filename) as f:reader = csv.reader(f)for datarow in reader:if reader.line_num != 1:datay.append(int(datarow[1]))
plt.figure() #创建画布
datax = list(range(1,len(datay)+1))
plt.scatter(datax,datay,s=50,c='r',marker='o',alpha=0.5)
plt.show()

在这里插入图片描述

1.2.2通过pyecharts实现

from pyecharts.charts import Scatter
from pyecharts import options as opts
import csv
filename = "D:\\数据可视化\\flowingdata_subscribers.csv"
scatter = Scatter()
datax = []
datay = []
with open(filename) as f:reader = csv.reader(f)for datarow in reader:if reader.line_num !=1:#print(reader.line_num,datarow)datay.append(int(datarow[1])) #datax.append(datarow[0][[3:5]]) datarow[0]:Data;值形如:01-01-2010
#print(len(datay))
datax = list(range(1,len(datay)+1))
scatter.add_xaxis(datax)
scatter.add_yaxis("订阅量",datay)
scatter.set_global_opts(title_opts = opts.TitleOpts(title="杂志订阅量"))
scatter.render("2021-6-23.html")

在这里插入图片描述

1.3 柱形图

1.3.1通过matplotlib实现

import matplotlib.pyplot as plt
import csv
plt.rcParams['font.family']=['sans-serif']
plt.rcParams['font.sans-serif']=['SimHei']#用来显示中文标签
filename="D:/数据可视化/hot-dog-contest-winners.csv"
datax = []
datay = []
with open(filename) as f:reader = csv.reader(f)for datarow in reader:if reader.line_num != 1:datay.append(datarow[2])datax.append(datarow[0])
plt.bar(datax,datay)
plt.xlabel('时间')
plt.ylabel('人口总量(亿)')
plt.title('全球历年人口总量')
plt.show()

在这里插入图片描述

1.3.2通过pyecharts实现

在这里插入图片描述
在这里插入图片描述

1.4 柱形堆叠图

1.4.1通过matplotlib实现

import matplotlib.pyplot as plt
import csv
import numpy as np
plt.rcParams['font.family']=['sans-serif']
plt.rcParams['font.sans-serif']=['SimHei']#用来显示中文标签
filename = 'D:/数据可视化/hot-dog-places.csv'
data = []
with open(filename) as f:reader = csv.reader(f)for datarow in reader:data.append(datarow)
datax =  [float(x) for x in data[0]]
datay_A = [float(y) for y in data[1]]
datay_B =  [float(y)for y in data[2]]
datay_C =  [float(y)for y in data[3]]
dataA = np.array(datay_A) + np.array(datay_B) + np.array(datay_C)#冠亚季所吃的热狗数量的总和
dataB = np.array(datay_B) + np.array(datay_C)#亚季军所吃的热狗数量总和
dataC = datay_C
plt.bar(datax,dataA,label='冠军')
plt.bar(datax,dataB,label='亚军')
plt.bar(datax,dataC,label='季军')
plt.xlabel('时间')
plt.ylabel('比赛结果(kg)')
plt.title('热狗大胃王比赛前三甲')
plt.legend(loc=2)#图例展示位置,数字代表第几象限
plt.tight_layout()
#fig,ax = plt.subplots() 
#ax.bar(datax,dataA,label='冠军')
#ax.bar(datax,dataB,label='亚军')
#ax.bar(datax,dataC,label='季军')
#ax.set_xlabel('时间')
#ax.set_ylabel('比赛结果(kg)')
#ax.set_title('热狗大胃王比赛前三甲')
#ax.legend(loc=2)
#fig.tight_layout()plt.show()

在这里插入图片描述

1.4.2通过pyecharts实现

在这里插入图片描述
在这里插入图片描述

1.5 折线图

绘制过去50年世界人口趋势图。
在这里插入图片描述
在这里插入图片描述

1.6 拟合曲线

绘制一个美国过去几十年失业率拟合曲线。
在这里插入图片描述
在这里插入图片描述

1.7 堆叠面积图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.8 雷达图

from pyecharts.charts import Radar
from pyecharts import options as opts
schema = [  {"name":"销售","max": 6500}, {"name":"管理","max": 16000}, {"name":"信息技术","max" :30000},{"name":"客服","max": 38000}, {"name":"研发","max": 52000}, {"name":"市场","max": 25000}]
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
radar = Radar()
radar.add_schema(schema=schema)
radar.add("预算分配", v1, color='red')
radar.add("实际开销", v2, color='blue')
radar.render('radar.html')

在这里插入图片描述

1.9 饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
import pandas as pd
vote = pd.read_excel('D://数据可视化//vote_result.xlsx')
pie = Pie()
x_data = vote['Areas_of_interest']
y_data = vote['Votes']
data_pair = [list(z) for z in zip(x_data,y_data)]
pie.add('',data_pair = data_pair)
pie.render()
或者下面代码同样可以实现
#from pyecharts.charts import Pie
#from pyecharts import options as opts
#import pandas as pd
#vote = pd.read_excel('D://数据可视化//vote_result.xlsx')
#pie = Pie()
#pie.add('',vote.values.tolist())
#pie.render()

在这里插入图片描述

二、其他细节考点

2.1在matplotlib中基本参数设置

2.1.1有关x,y轴设置:

添加X轴标题:plt.xlabel()
添加Y轴标题:plt.ylabel()
添加X轴范围:plt.xlim()
添加Y轴范围:plt.ylim()
添加整个图片标题:plt.title()

2.1.2有关numpy常用函数

np.arange(n) ; 元素从0到n-1的ndarray类型
np.ones(shape): 生成全1
np.zeros((shape), ddtype = np.int32) : 生成int32型的全0
np.full(shape, val): 生成全为val
np.eye(n) : 生成单位矩阵np.ones_like(a) : 按数组a的形状生成全1的数组
np.zeros_like(a): 同理
np.full_like (a, val) : 同理np.linspace(1,10,4): 根据起止数据等间距地生成数组
np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素
- 一维数组切片
a = np.array ([9, 8, 7, 6, 5, ])
a[1:4:2]> array([8, 6]) : a[起始编号:终止编号(不含): 步长]- 多维数组索引
a = np.arange(24).reshape((2, 3, 4))
a[1, 2, 3] 表示 3个维度上的编号, 各个维度的编号用逗号分隔- 多维数组切片
a [:,:,::2 ] 缺省时,表示从第0个元素开始,到最后一个元素数组的运算
np.abs(a) np.fabs(a) : 取各元素的绝对值
np.sqrt(a) : 计算各元素的平方根
np.square(a): 计算各元素的平方
np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、102为底的对数
np.ceil(a) np.floor(a) : 计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整)
np.rint(a) : 各元素 四舍五入
np.modf(a) : 将数组各元素的小数和整数部分以两个独立数组形式返回
np.exp(a) : 计算各元素的指数值
np.sign(a) : 计算各元素的符号值 1+),0-1-.
np.maximum(a, b) np.fmax() : 比较(或者计算)元素级的最大值
np.minimum(a, b) np.fmin() : 取最小值
np.mod(a, b) : 元素级的模运算
np.copysign(a, b) : 将b中各元素的符号赋值给数组a的对应元素

2.1.3.常见曲线的名称

plt.plot(x,y , fmt) :绘制坐标图
plt.boxplot(data, notch, position): 绘制箱形图
plt.bar(left, height, width, bottom) : 绘制条形图
plt.barh(width, bottom, left, height) : 绘制横向条形图
plt.polar(theta, r) : 绘制极坐标图
plt.pie(data, explode) : 绘制饼图
plt.scatter(x, y) :绘制散点图
plt.hist(x, bings, normed) : 绘制直方图

2.2 jupyter notebook两种渲染方式

渲染图片 
bar.render(path)                          #将图片渲染为html文件
bar.render_notebook()              #直接在jupytr notebook中渲染

2.3 可视化步骤

数据采集、数据处理和变换、可视化映射和用户感知四大步骤

在这里插入图片描述

2.4 ggplot图层

1)数据层(必须存在的图形层)
2)几何图形层(即想要绘图的图形类型,也是必须存在的图形层)
3)美学层(作用是图形美化)

2.5 可视化作用

1.记录信息
2.分析推理
3.信息传播与协同

2.6 简述直方图和柱形图的区别

1.直方图展示数据的分布,柱状图比较数据的大小。
2.直方图X轴为定量数据,柱状图X轴为分类数据。因此,直方图上的每根柱子都是不可移动的,X轴上的区间是连续的、固定的。而柱状图上的每根柱子是可以随意排序的,有的情况下需要按照分类数据的名称排列,有的则需要按照数值的大小排列。
3.直方图柱子无间隔,柱状图柱子有间隔。
4.直方图柱子宽度可不一,柱状图柱子宽度须一致。柱状图柱子的宽度因为没有数值含义,所以宽度必须一致。但是在直方图中,柱子的宽度代表了区间的长度,根据区间的不同,柱子的宽度可以不同,但理论上应为单位长度的倍数。

2.7 简述折线图和柱形图的区别

(1)折线图是用直线段将各数据点连接起来而组成的图形,以折线方式显示数据的变化趋势;柱形图又称条形图、直方图,是以高度或长度的差异来显示统计指标数值的一种图形,用于显示一段时间内的数据变化或显示各项之间的比较情况。
(2)在折线图中,沿水平轴均匀分布的是时间,沿垂直轴均匀分布的是数值;柱形图中数值的体现就是柱形的高度,柱形越矮则数值越小,柱形越高则数值越大。
(3)折线图描述的是连续型数据;柱形图描述的是离散型数据。

2.8 简述爬取网络数据的过程。

需求分析:首先需要分析网络数据爬取的需求,然后了解所爬取主题的网址、内容分布,所获取语料的字段、图集等内容。
技术选择:网页爬取及数可通过python,Java,C++,C#等不同的编程语言实现,主要涉及的技术包括urllib库、正则表达式、Selenium、BeautifulSoup、Scrapy等技术。
网页爬取:确定好爬取技术后、需要分析网页的DOM树结构、通过Xpath
技术定位网页所爬取内容的节点,再爬取数据;同时,部分网站涉及页面跳转、登陆验证等。
存储技术:该技术主要是存储爬取的数据信息、这些数据信息主要包括SQL数据库、纯文本格式的文件、CSV/XLS文件等。

2.9 格式塔原则

1.接近原则
2.相似原则
3.闭合原则
4.连续原则

三、 总结

就总结到这里了,老师课堂上重点强调知识点应该就这么多吧,还有的话,欢迎大家留言,并及时添加。最后希望大家考个理想成绩。


http://chatgpt.dhexx.cn/article/yDZECC3V.shtml

相关文章

【独家】一文读懂数据可视化

前言 数据可视化,是指将相对晦涩的的数据通过可视的、交互的方式进行展示,从而形象、直观地表达数据蕴含的信息和规律。 早期的数据可视化作为咨询机构、金融企业的专业工具,其应用领域较为单一,应用形态较为保守。步入大数据时代,各行各业对数据的重视程度与日俱增,随之…

4.2 数据可视化

一、 数据可视化介绍 1. 概念 数据可视化:是指以 图形、图像、地图、动画 等更为生动、易于理解的方式展现具体数据,诠释数据之间的关系和发展的趋势,以期更好地理解和使用数据。 大数据可视化分析利用支持信息可视化的用户界面以及支持分…

一图胜千言!这10种可视化技术你必须知道

全文共4549字,预计学习时长9分钟 图片来源:Willian Justen deVasconcellos on Unsplash 相比于浩如烟海的数据表格,大部分人还是更喜欢视觉资料,这一点已不足为奇。也是出于这个原因,人们通常才会在学术论文的前几页加上一张图表,并且清楚地标记上各种注释。 当数据科学家…

谷歌浏览器输入网址显示该网页无法正常运作

谷歌浏览器 是一款大家喜爱使用的浏览器,它为我们的生活提供了便捷, 可是,不少朋友还不知道怎么解决谷歌浏览器无法打开网页的问题 具体如下: 首先,请大家找到电脑中的“谷歌浏览器”,点击进入主界面&…

谷歌浏览器无法上网,其他浏览器正常,换chrome搜索引擎

谷歌浏览器无法上网,其他浏览器正常,第一种情况:打开代理设置,开启自动检测设置,重新打卡浏览器 情况二:打开windows注册表,删除配置,重启浏览器不废话,上图 情况三&…

chrome谷歌浏览器通过小米路由器访问网页一会儿后显示:无法访问Internet

近一个月,出现了chrome浏览器国内的网页也没法打开了,使用其他浏览器就能正常使用,比如:Edge。 家里宽带上使用的是小米路由器,用chrome访问网站出现如下截图: 经过网上查找相关资料,结合实践配…

一招搞定谷歌搜索、谷歌学术无法訪问的问题

近期,谷歌搜索、谷歌学术“突然”无法訪问了?我百思不得其解啊,禁不住想问一下:前辈们。你们这是要如何?我们写个论文easy吗?怒火燃尽,言归正传,事实上要解决问题也是非常easy的,原理不赘述。直接上菜。下面谨代表个人意见,大仙们有好的方法记得留言共享讨论。谢谢。…

解决Chrome中打不开Google搜索结果链接

由于Google的搜索结果都要经过Google跳转(Safari上视乎没有跳转,可以直接进入结果页面),默认跳转使用未加密的HTTP连接,经常被我国GFW拦截,导致无法打开Google搜索结果! 解决办法是,…

关于chrome浏览器地址和不能搜索访问的问题

正版的chrome浏览器地址 这里别下载错,我就是重装电脑之后下载chrome浏览器然后发现是盗版本的。正版地址:https://www.google.cn/intl/zh-CN/chrome/ 浏览器默认下载地址最好改为除C盘以外的盘,避免C盘以后爆满,在设置里面改。 不能搜索…

Google chrome谷歌浏览器,打开后是百度搜索或其他搜索怎么办?

如果遇到Google浏览器打开后是百度或者其他浏览器,说明我们在谷歌浏览器的设置有问题,只需要下面简单的操作就可以完成替换。 setting-on start-open a specific page or set of a page,在下面的框中手动敲入www.google.com就欧克了

搜索引擎突然无法访问问题

1.winR键运行 2.输入 inetcpl.cpl 打开 3.点击上方的高级 点击下面重置 勾选删除个人配置 4.最后重启

实用技巧:Google 搜索打不开的解决方法【图文教程】

很多人都喜欢用 Google 搜索,但自从 Google 服务器搬离中国大陆后,大陆用户用 Google 搜索时会自动跳转到 google.com.hk,不仅莫名其妙的关键字被过滤,而且经常出现“无法显示此网页”,相当悲催。 大家比较熟悉的解决方…

股票机械交易系统

最近有一个想法就是开发一个股票机械的交易系统,利用网格法去操作,没有半点人的感情。大家有什么想法可以和我交流,也可以提出您的宝贵意见。

Python +Echarts +PyQt5设计股票期货自动交易系统 一、软件界面设计

效果图: 1、python下 使用Qt Designer创建一个窗体 这里选择创建Main Window窗体 得到可视化可编辑窗体。 2、创建布局 每个界面采用Frame控件进行布局,以方便后期显示与隐藏,整体布局中将左侧与顶部位置空出来用于插入侧边菜单栏和顶栏。

Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(一)

Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应 效果图: 上一章《 Python +Echarts +PyQt5设计股票期货自动交易系统 一、软件界面设计 》中我们进行了基本的界面样式、布局、和基础内容设计,其中布局部分包含了四大模块,即: 1、行情模块 (1)、行…

金融信息化及交易管理系统(股票交易系统APP)

目 录 1 绪 论 1 1.1 选题背景及意义 1 1.2 研究现状 1 1.3 研究主要内容 4 2 需求分析与实施方案 5 2.1 虚拟金融信息化交易系统的功能 5 2.2 可行性分析 5 2.3 系统开发技术 5 2.4 系统开发工具及环境 6 2.5 系统开发方式 7 3 需求分析 8 3.1 系统结构 8 3.2 系统描述 9 3.2.…

同花顺股票自动交易

本文转载自: http://www.cnblogs.com/lovebanyi/archive/2012/01/17/2324997.html 作者:lovebanyi 转载请注明该声明。 由于大部分的券商没有提供交易接口。只对顶级的一些机构或大公司提供接口。所以普通的股民大部分是没有办法享受到一些自动化交易的…

A股全自动化交易——从零到实盘20(完结)

本文是“从零到实盘”系列的最后一篇文章,将介绍实现全自动实盘交易的最后一个步骤,即实现定时更新股票数据任务。 schedule模块安装 我们使用schedule来实现定时任务,首先需要安装schedule模块,在终端中输入以下命令安装&#…

自动交易股票接口开发的关键是什么?

小编认为自动交易股票接口软件的开发的关键是要知道券商的股票交易接口,但是出于安全的考虑,券商对外是不公开股票交易接口。但是我们自己是无法开发股票自动交易软件的开发。不过,现在很多券商都提供了证券独立委托系统。如果我们利用券商都…

股票实盘交易接口怎样实现自动交易过程?

目前随着国内二级股市已处于相对较高的水平,但是对于高净值的用户来说,在量化投资市场上使用股票实盘交易接口具有低波动性和自动交易的定量对冲投资模型体系,包括了一些高性价比、大型基金和长期投资的资产品种,所以大家在选择股…