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

文章目录

  • 前言
  • 一、绘制常见图形。
    • 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()

数据可视化-期末复习重点笔记_第1张图片

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()

数据可视化-期末复习重点笔记_第2张图片

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()

数据可视化-期末复习重点笔记_第3张图片

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")

数据可视化-期末复习重点笔记_第4张图片

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()

数据可视化-期末复习重点笔记_第5张图片

1.3.2通过pyecharts实现

数据可视化-期末复习重点笔记_第6张图片
数据可视化-期末复习重点笔记_第7张图片

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()

数据可视化-期末复习重点笔记_第8张图片

1.4.2通过pyecharts实现

数据可视化-期末复习重点笔记_第9张图片
数据可视化-期末复习重点笔记_第10张图片

1.5 折线图

绘制过去50年世界人口趋势图。
数据可视化-期末复习重点笔记_第11张图片
数据可视化-期末复习重点笔记_第12张图片

1.6 拟合曲线

绘制一个美国过去几十年失业率拟合曲线。
数据可视化-期末复习重点笔记_第13张图片
数据可视化-期末复习重点笔记_第14张图片

1.7 堆叠面积图

数据可视化-期末复习重点笔记_第15张图片
数据可视化-期末复习重点笔记_第16张图片
数据可视化-期末复习重点笔记_第17张图片

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')

数据可视化-期末复习重点笔记_第18张图片

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()

数据可视化-期末复习重点笔记_第19张图片

二、其他细节考点

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 可视化步骤

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

数据可视化-期末复习重点笔记_第20张图片

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.连续原则

三、 总结

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

你可能感兴趣的:(python,数据可视化)