文章目录

  • 前言
  • 一、绘制常见图形。
    • 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) : 计算各元素的自然对数、10、2为底的对数
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.连续原则

三、 总结

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

数据可视化-期末复习重点笔记相关推荐

  1. 2022年夏 数据可视化期末复习(*机试)

    目录 考试要求: 考试准备: 一.Pyecharts + Streamlit 1)timeline轮播年份 2)streamlit控件年份+图表 3)线图+zoom滑块在左侧, logY效果 二.Me ...

  2. 金融学期末复习重点准备

    金融学期末复习重点准备 前言 记一下金融学期末复习重点准备. 主要是把重点点到,刨去了铺垫和逻辑. 我好像想明白为什么我写<<管理学>期末第一次复习>的时候总感觉怪怪的. 我应 ...

  3. 软件测试期末复习重点

    1.软件测试的定义以及软件测试的目的/意义. (1)定义: 软件测试就是一个过程或一系列过程,用来确定计算机代码完成了其应该完成的功能,不执行其不该有的操作. 或:软件测试是由"验证(Ver ...

  4. 计算机文化基础的重点,计算机文化基础期末复习重点.doc

    计算机文化基础期末复习重点 计算机文化基础复习重点~~大家自己打印下来,常看看~~ 来源: HYPERLINK "/GetEntry.do?id=702112705&owner=34 ...

  5. 大学c语言项目,项目大学C语言程序设计期末复习重点.doc

    期末复习课 笔试试卷基本情况 1.单项选择(本题共15个小题,每题2分.30分) 在四个备选答案中选择一个正确的.答案唯一. 2.阅读程序选择运行结果(本题共有8个小题,每个题3分.24分) 考核基本 ...

  6. 北林嵌入式系统期末复习重点

    持续更新······ 注:以下内容为博主期末复习所用,全打字输入,可能有误.内容为便于记忆,可能会有省略和简化.如有错误欢迎评论区更正 选择填空判断 嵌入式系统的定义和特点 定义:以应用为中心,计算机 ...

  7. 大数据技术期末复习习题-前两章 大数据概述及Hadoop概述

    链接:大数据技术原理与应用期末复习第三章知识点 链接:HDFS编程实践 习题 1[单选题] 人类社会的数据产生方式大致经历了三个阶段,不包括____C____. A.运营式系统阶段 B.用户原创内容阶 ...

  8. python plt包_Python 数据可视化-Matplotlib包学习笔记(一)

    Python 数据可视化 本文主要参照Matplotlib的官方教程进行整理,作为个人的学习笔记进行分享,欢迎相互讨论. Matplotlib包学习笔记(一) 本文主要简单介绍一下Matplotlib ...

  9. 编译原理期末复习重点

    文章目录 编译原理期末复习纲要 一.选判填 二.简答题 二.大题 编译原理期末复习纲要 仅供自己观看 一.选判填 单选:5*1=5' 判断:5*1'=5' 填空:5*2'=10' 合计:20' 二.简 ...

最新文章

  1. 选择ButterKnife,告别findViewById
  2. android开发出现No Launcher activity found!解决方案
  3. Docker selenium自动化 - windows版docker的安装与运行环境检测
  4. 关闭页面刷新上层页面的几种方式
  5. div不随滚动条左右移动而改变位置
  6. java 反射 本类,关于Java反射中基本类型的class有关问题
  7. 大公司里怎样开发和部署前端代码?
  8. [目录]搭建一个简单的WebGIS应用程序
  9. python 散点图点击链接图片_在Python和matplotlib中连接三维散点图中的两点
  10. 5G 来袭,数据暴增,新一代云存储平台如何承载?
  11. 文本检查点web_reg_find和web_find两个函数的区别
  12. 只能选择GridView中的一个CheckBox(单选CheckBox)
  13. 腾讯云短信服务的简单使用
  14. php 获取当前 周,php如何获取当前时间是第几周
  15. 如何安装torch、Pytorch、torchversion
  16. 超实用的Django入门基础教程,新手必备!
  17. 普通素人做知识付费项目或者副业,会不会特别容易“凉凉”?
  18. ECharts 实现世界地图
  19. Android利用TranslateAnimation 动画实现上下平移横线(模拟人脸识别扫描,二维码识别扫描)
  20. 15高级链接构建策略和技巧,以提高您的SEO

热门文章

  1. android 13:You uploaded an APK or Android App Bundle which has an activity Google后台上传新APP传不上去
  2. java后台正则表达式验证多种方法--(港澳证件验证)
  3. 融云即时通讯之直播聊天室
  4. MaxCompute
  5. iPhone XS Max的tabbar显示混乱解决方法
  6. iOS 仿滴滴出行界面~demo
  7. 滴滴出行2017秋招笔试真题-编程题汇总_Java实现
  8. 自媒体:公众号今日头条同步教程
  9. 第一篇:“大集中”应用系统的结构和技术特点3——复杂性和简单性于一体
  10. Netty 中的 Channel执行完close之后, 还能进行write吗?