机器学习-数据科学库(HM)(一)-matplotlib学习

基础知识

1.课程概要
(1)基础概念
(2)matplotlib 画图
(3)numpy处理数值型数据
(4)pandas处理字符串 字典 列表

  • 基础概念

  • 为什么学习数据分析?
    a.和爬虫,机器学习,神经网络结合岗位需求
    b. python数据科学的基础
    c.机器学习课程的基础

  • 什么是数据分析?
    a.对大量数据进行分析,帮助决策

  • 数据分析流程
    提出问题→准备数据→分析数据→结论→成果可视化

  • 环境安装
    (1)如何选择环境?不是根据项目类型,是根据项目需要。每一个项目创建
    (2) 一个环境 conda: data science package & enviroment
    manager(集合了很多环境,几乎可以安装所有的模块) 切换环境: windows: activate python 3; linux/macos: source activate python 3
    (3) alias 命令 将一个长命令起一个小名
    例如:ll→ll-alh(以列表形式显示 -a: (all)显示全部文件)

  • 工具jupyter notebook-一款编程文档笔记展示软件
    在anacoda中启动命令:jupyter notebook即可自动打开,如果无法打开,可以复制链接到浏览器

在这里插入图片描述
pwd可以查看当前anaconda所在目录,ls看现在文件夹下的文件
jupyter notebook基本操作
new→folder(新建文件夹)→勾选前面方框→rename
new-python 3→input→执行→
在这里插入图片描述

matplotlib

为什么要学习

更直观,主要是实现数据可视化

基本要点

  • 假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14,5,17,20,25,26,26,27,22,18,5] 如何用matplotlib画出来
  • pycharm如何改环境?file→setting→project interpreter
  • anaconda怎么调用py文件?cd 转化调用文件途径,然后直接输入文件名即可调用(如果pycharm想利用anaconda的包,新建项目时应当选择调用全局包)
  • 程序如下:
from matplotlib import pyplot as plt #从matplotlib中导入pyplot模块并用plt,一方面简写另一方面可以避免重复引用
x=range(2,28,2)
y=[15,13,14,5,17,20,25,26,26,27,22,18,15]
plt.plot(x,y) #将x和y一一对应
plt.show()#展示图形

折线图存在问题及解决

  • 设置图片大小 调用类figure plt.figure(figuresize=(20,8),dpi=80),通过实例化一个figure并传递参数,能够在后台自动使用该figure实例
  • 图片保存:plt.savefig(“传入位置.文件类型”) svg为矢量图格式,不会出现锯齿
  • 设置X轴 plt.xticks(range(2,25))如果还想取更小的步长,可以列表表达式;太密集可以取步长操作;
  • 设置y轴plt.yticks(range(min(y),max(y)+1))
  • 最终程序如下:
from matplotlib import pyplot as plt #从matplotlib中导入pyplot模块并用plt,一方面简写另一方面可以避免重复引用
x=range(2,28,2)
y=[15,13,14,5,17,20,25,26,26,27,22,18,15]
#设置图片大小
plt.Figure(figsize=(20,8),dpi=80) #类属性是figsize不是figuresize
#设置x轴
_xtick_labels=[i/2 for i in range(4,49)]
plt.xticks(_xtick_labels[::3]) #列表取步长操作
plt.yticks(range(min(y),max(y)+1))
plt.plot(x,y) #将x和y一一对应
plt.show()#展示图形
plt.savefig("./sig_size.png") #svg格式不会失真

matplotlib显示中文

  • 如何让刻度的标识是字符串而不是数字?应当把x和字符串列表进行一一对应,先建立一个和x一一对应的字符串列表(利用.format())再进行plt.xticks(_x, _xticks_labels)操作
  • x轴刻度标识旋转操作,加入rotation90参数
  • matplotlib默认字体不显示中文,如何设置中文字体
    fc-listcmd命令中查看所有默认字体
    fc-list:lang =zh查看支持的中文(冒号前有空格)
    matplotlib.rc可以修改(ctrl+B可以查看如何使用), 设置方法如 rc(‘lines’, lw=2, c=‘r’),lines是设置的性质,lw和c是给性质赋值
    font manager font_manager.Fontproperties(fname=后面放字体地址)
from matplotlib import pyplot as plt, font_manager
import random
x=range(0,120)
y=[random.randint(20,35) for i in range (120)] #参数1、参数2必须是整数 函数返回参数1和参数2之间的任意整数, 闭区间
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#设置字体,这种方法不好成功,因为不一定有字体
'''import matplotlib
font = {'family' : 'Microsoft Yahei',
        'weight' : 'bold',
        'size'   : 12}
matplotlib.rc('font', **font)'''

#设置字体方法二,把中文字体,给my_font,然后后面用plt.xticks(fontproperties=my_font)
import matplotlib
#查找matplotlib字体库位置
print(matplotlib.matplotlib_fname())
my_font=font_manager.FontProperties(fname=r"C:\Windows\Fonts\simkai.ttf")#windows系统字体在c盘window→fonts,地址是字符串记得加双引号,地址前加r

#调整x轴刻度
_xtick_labels=["10点{}分".format(i) for i in range(60)]
_xtick_labels+=["11点{}分".format(i) for i in range(60)] #在列表后增加
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=90,fontproperties=my_font) #xtick也是一个对应函数,把x刻度和标签对应起来。
plt.show()

绘制多次图形和不同图形的介绍与总结

  • 怎么装anaconda环境
    (1)下载:清华镜像,三个链接复制粘贴即可下载模块
    (2)一定把anaconda输入到环境变量中(初始安装有两个默认选项要先)
    (3)创建环境 conda create -n pythonconda(环境名称)python=3.8(安装使用的解释器版本)
    (4)切换环境 conda avtivate pythonconda
    (5) 查看pip包管理系统的版本 pip–version
    (6)将pycharm转换成conda安装包下面的python.exe文件(file→setting→interfere→),在pycharm中写好模块test06.py
    (7)切换好环境后,用在anaconda中cd命令转化为test06.py所在的文件路径,python test06.py就可以调用运行该模块了
(pythonconda) PS D:\python\anaconda> conda activate pythonconda03
(pythonconda03) PS D:\python\anaconda> pip --version
pip 20.2.3 from D:\python\anaconda\envs\lib\site-packages\pip (python 3.8)

(6) pycharm如何切换到anaconda环境呢?
参加https://jingyan.baidu.com/article/93f9803fdd922ba0e46f5584.html

  • 绘制网格
    (1)命令 plt.grid()
    (2)调整网格透明度plt.grid(alpha=0.4)
    (3) 设置y和x的标签 xlabel, ylabel

  • 绘制第二个y
    (1)赋予y1,y2, 分别plt.plot(x,y1),plt.plot(x,y2)
    (2) 给不同的曲线标签,第一步plt(x,y1,label="", color=“orange”,linestyle="😊,调整每一个线的标签、颜色、线条类型;在后面plt.legend(prop=my_font)设置图例位置、字体,只有legend是用prop接收,其他的都是用font_manage. FontProperty;标签位置是legend的loc性质;更多颜色在RGB与16进制
    (3)图标题、x轴、y轴标题分别是:plt.title(label=“不同年龄女朋友数量”),plt.xlabel(“年龄”),plt.ylabel(“女朋友数量”)
    (4)保存 plt.sagefig

  • 其他图形在matplotlib的官方文档,example中找实例,找代码,改变关键的x和y

  • 关键要明白不同图的应用长江
    折线图:以折线的走势表示统计数量的增减变化的统计图,能够显示数据的变化趋势
    直方图:绘制连续性数据,展示一组或多组数据的分布情况;
    条形图:绘制离散的数据,一眼看出各个数据大小,比较数据间差异
    散点图:判断变量之间的数量关联趋势,展示离群点(分布规律)

from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
y1=[random.randint(1,4) for i in range(11,30)] #random.random是形成随机数,randint是形成整数
y2=[random.randint(1,4) for i in range(11,30)] #random.random是形成随机数,randint是形成整数
x=range(11,30)
#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#设置中文字体
myfont=font_manager.FontProperties(fname=r"C:\Windows\Fonts\simkai.ttf")

#绘制不同曲线,设置标签,颜色,线条类型及粗细
plt.plot(x,y1,label="自己",color="orange",linestyle=":")
plt.plot(x,y2,label="朋友",color="cyan",linestyle="--")

#设置x轴刻度标签和x轴标签
_xticks_labels =["{}years old".format(i) for i in x]
plt.xticks(x,_xticks_labels,rotation=45,fontproperties=myfont)
plt.xlabel("年龄",fontproperties=myfont)
plt.ylabel("女朋友数量",fontproperties=myfont)
#设置不同
#调整网格透明度
plt.grid(alpha=0.4)

#调整图例位置、图例字体
plt.legend(loc="best",prop=myfont)

#设置图题目、x和y的标签
plt.title(label="不同年龄女朋友数量",fontproperties=myfont)
#展示图形
plt.show()
  • 课程复习
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值