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

前言

期末可视化复习资料

划重点!!!
特别要重视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.连续原则

三、 总结

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

  • 16
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值