数据分析--01:数据分析的介绍与基本图例的绘画

一、数据分析的介绍

1、数据分析的基本概念

  • 用适当的统计方法对收集来的大量数据进行分析
  • 提取有用的信息形成结论
  • 对数据加以详细研究和概括总结的过程

2、数据分析流程

d

3、为什么学习数据分析

  • 有一定的岗位需求
  • 是机械学习的基础
  • 数据科学的基础

4、数据分析工具

  • 工具
    • excel
    • tableau
    • spss
  • 编程语言
    • R
    • Python
    • Matlab

5、数据分析与数据挖掘的异同点

  • 相同点
    • 数据分析和数据挖掘都是对数据进行分析、处理等操作,从而得到有价值的知识。
  • 不同点
    • 在应用工具上,数据分析更多的是借助现有的分析工具,而数据挖掘则是需要通过编程来实现的。
    • 在行业方面,数据分析要求对所从事的行业有比较深的了解,更多的是将数据与业务紧密联合起来;而数据挖掘不需要太多的行业知识,更专注于技术层面。

二、相关环境部署

1、pycharm环境部署

  • 傻瓜式安装
  • 在你知道的盘符内安装好python
  • pucharm连接解释器

2、jupyter环境部署

  • 安装
pip install jupyter

三、Jupyter notebook的使用

1、学习目标

  • 理解
    • 应用jupyter编写运行代码
  • 应用
    • 创建文件
    • 操作cell
    • 运行操作

2、 介绍

  • Jupyter 项目是一个非盈利的开源项目,源于2014年的ipython项目,因此它逐渐发展为支持跨所有编程语言的交互数据科学和科学计算。
    • Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版,一个开源Web应用程序
    • .ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范

3、为什么使用jupyter

  • 传统软件开发:工程/目标明确
    • 需求分析、设计架构、开发模式、测试
  • 数据挖掘:艺术/目标不明确
    • 目的是具体的洞察目标,而不是机械的完成任务
    • 通过执行代码理解问题
    • 迭代式地改进解决问题的方法
      实时运行代码、叙事性的文本和可视化的被整合在一起,方便使用代码和数据讲述故事

4、jupyter的使用

界面启动、新建

  • 本地打开
    • 按照环境搭建课件安装python notebook库完成稿后,本机输入命令jupyter notebook,会自动弹出浏览器窗口打开notebook
    • 找到桌面文件,在内部创建文件夹

四、数据挖掘基础和环境安装使用

1、Matplotlib介绍

  • 什么是Matplotlib
    • Matplotlib是一个python的基础绘图库,它可与numpy一起使用,代替Matplotlib使用
    • 是专门来开发2D图表的(包括3D图表)
    • 使用极其简单
    • 以渐进、交互方式来实现数据可视化
  • 为什么学习Matplotlib
    • 将数据进行可视化,使数据更加直观
    • 使数据更加具有说服力

2、Matplotlib的安装

  • 由于Matplotlib是第三方库,所以我们需要安装它才可以使用。注意,Matplotlib3.0要求python3版本才能安装使用
  • 安装命令:pip install matplotlib

3、Matplotlib的简单使用

使用jupyter进行编译

  • 点图
import matplotlib.pyplot as plt # 导入模块
plt.figure() # 建立图片对象
'''
添加子图到figure对象内
nrows是行
ncols是列
index是子图索引
'''
ax1 = plt.subplot(2,2,1)
ax2 = plt.subplot(2,2,2)
ax3 = plt.subplot(2,2,3)
ax4 = plt.subplot(2,2,4)

# 超出会报错
# ax1 = ply.subplot(2,2,5)

ax1.scatter(range(10),range(10))
  • 多重绘制点图
import matplotlib.pyplot as plt
plt.figure()
fig, axs = plt.subplots(2,2)
# axs[0][1]
axs[0,1].scatter(range(10),range(10))
axs[1,0].scatter(range(10),range(10))

其中,axs内类似于列表的下标,第一位是行数,第二位是列数
意思是第几行,第几个图表

  • 线图
from matplotlib import pyplot as plt
fig = plt.figure()
plt.figure(figsize=(20,8),dpi=100)
plt.plot([1,2,3],[4,5,6])
plt.show()

4、Matplotlib的架构组成

  • Matplotlib框架分为三层,这三层构成了一个栈,上层可以调用下层。
    在这里插入图片描述

1.后端层

  • matplotlib的底层,实现了大量的抽象接口类,这些API用来在底层实现图形元素的一个个类
    • FigureCanvas对象实现了绘图区域这一概念
    • Renderer对象在FigureCanvas上绘图

2.美工层

  • 图形中所有能看到的元素都属于Artist对象,即标题、轴标签、刻度等组成图形的所有元素都是Artist对象的实例
    • Figure:指整个图形(包括所有的元素,比如标题、线等)
    • Axes(坐标系):数据的绘图区域
    • Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签
  • 特点
    • 一个figure(图)可以包含多个axes(坐标系),但是一个axes只能属于一个figure。
    • 一个axes(坐标系)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系。
      在这里插入图片描述

3.脚本层

  • 主要用于可视化编程,pytplot模块可以提供给我们一个与matplotlib打交道的接口。可以只通过调用pyplot模块的函数从而操作整个程序包,来绘制图形。
    • 操作或者改动Figure对象,例如创建Figure对象
    • 大部分工作是处理样本文件的图形与坐标的生成

五、Matplotlib绘图

1、图片与子图

  • matplotlib.pytplot包含了一系列类似于matlab的画图函数。它的函数作用于当前图形(figure)的当前坐标系(axex)。
from matplotlib import pyplot as plt
fig = plt.figure()

注意:
在ipython中,执行该代码一个空白的绘图窗口就会出现,但是在jupyter中没有任何显示。但是可以通过plt.subplot创建一个或者多个子图。
例如:带有四个子图的Matplotlib图片

在这里插入图片描述
除此之外,Matplotlib包含了一个变成方法plt.subplots新建一个图片,然后返回包含了已生成的子图的对象的Numpy数组。

  • plt.subplots(nrows, ncols, sharex, sharey)
    • nrows子图的行数
    • ncols子图的列数
    • sharex 所有子图使用相同的x轴刻度
    • sharey 所有子图使用相同的y轴刻度
      那么实际上,当我们不需要使用子图时,可以通过plt对象直接绘制图形。

2、Matplotlib绘制图形

1. 折线图

  • 折线图以折现的上升或者下降来表示统计数量的增减变化的统计图。
  • 特点
    • 能够显示数据的变化趋势,反应数据的变化情况。
  • 折线图的绘制:折线图可以通过**plot()**函数来绘制
    • plt.plot(x, y) 使用默认的线样式及颜色绘制x , y 构成的图形
      演示实例如下:
import matplotlib.pyplot as plt

# 构建数据
x = [1,2,3,4,5,6]
y = [17,17,18,15,11,11,13]

plt.plot(x,y)
plt.show()

上述实例,x数组对应图形x轴的值,y数组对应图形y轴的值,并且通过plt.plot()绘制之后,通过plt.show()展示图片,释放内存。
在这里插入图片描述
案例演示:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度

import matplotlib.pyplot as plt
import random

# 中文显示第一种方法
import matplotlib
font = {
   
    'family':'SimHei',
    'weight':'bold',
    'size':12
        }
# 'family':'SimHei'表示字体为雅黑
# 'weight':'bold'表示字体为加粗
# 'size':12表示字号为12号
matplotlib.rc("font", **font)

# 中文显示 第二种方法
# import matplotlib.pyplot as plt
# plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
# plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

# 中文显示第三种方法
# from matplotlib import pyplot as plt
# from matplotlib.font_manager import FontProperties 
# font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
# x = [1,2,3,4]
# y = [3,2,1,3]

# plt.plot(x,y)
# plt.xlabel("x轴标签",fontproperties=font)
# plt.show()

plt.figure(figsize=(12,5),dpi=100)

# 构建x,y
x = range(60)
y = [random.uniform(15, 19) for i in x]

# 构建时间轴
x_time = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)

# 画这折线图
plt.plot(x,y, color='r', linestyle='--', label='辽宁')
# color=表示线条颜色
# linestyle=表示线条形状
# label=添加副标题

# 修改刻度
plt.xticks(x[::5], x_time[::5])
plt.yticks(y_ticks[::5])

# 增加标题,坐标描述
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('辽宁地区11点之12点之间的温度变化显示')

# 增加图形注释
plt.legend(loc='best')
# loc=表示图形注释的人位置
# best表示最佳的位置


plt.show()

在这里插入图片描述
**注意:**macOS系统的中文不兼容
上述分图显示:

import matplotlib.pyplot as plt
import random

# 中文显示第一种方法
import matplotlib
font = {
   
    'family':'SimHei',
    'weight':'bold',
    'size':12
        }
# 'family':'SimHei'表示字体为雅黑
# 'weight':'bold'表示字体为加粗
# 'size':12表示字号为12号
matplotlib.rc("font", **font)

# 中文显示 第二种方法
# import matplotlib.pyplot as plt
# plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
# plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

# 中文显示第三种方法
# from matplotlib import pyplot as plt
# from matplotlib.font_manager import FontProperties 
# font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
# x = [1,2,3,4]
# y = [3,2,1,3]

# plt.plot(x,y)
# plt.xlabel("x轴标签",fontproperties=font)
# plt.show()


# plt.figure(figsize=(12,5),dpi=100)
# 创建figure
fig, axes = plt.subplots(nrows=1,ncols=2,figsize=(12,5),dpi=100)

# 构建x,y
x = range(60)
y = [random.uniform(15, 19) for i in x]

# 准备北京的温度
y_beijing = [random.uniform(20, 35) for i in x]

# 构建时间轴
x_time = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)

# 画这折线图
# plt.plot(x,y, color='r', linestyle='--', label='辽宁')
# plt.plot(x,y_beijing, label='北京')
# # color=表示线条颜色
# # linestyle=表示线条形状
# # label=添加副标题

# # 修改刻度
# plt.xticks(x[::5], x_time[::5])
# plt.yticks(y_ticks[::5])

# # 增加标题,坐标描述
# plt.xlabel('时间')
# plt.ylabel('温度')
# plt.title('辽宁地区11点之12点之间的温度变化显示')

axes[0].plot(x,y,label='辽宁')
axes[1].plot(x,y_beijing, color='r', linestyle='--', label='北京')


# 构建x轴刻度
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])


# 增加x轴,y轴的描述信息
axes[0].set_xlabel('时间')
axes[0].set_ylabel('温度')

axes[1].set_xlabel('时间')
axes[1].set_ylabel('温度')

axes[0].set_title('中午11点之12点之间的温度变化显示')
axes[1].set_title('中午11点之12点之间的温度变化显示')

# 增加图形注释
# plt.legend(loc='best')
# plt.legend(loc='font')
axes[0].legend(loc='best')
axes[1].legend(loc='best')
# loc=表示图形注释的人位置
# best表示最佳的位置


plt.show()

总结:

# 构建x,y
x = range(60)
y = [random.uniform(15, 19) for i in x]


# 构建时间轴
x_time = ['11点{}分'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值