互联网网站样式,系统安装两个wordpress,网站建设公司gzzhixun,无锡网站建设网页制作机器学习#xff08;科学计算库#xff09;完整教程#xff08;附代码资料#xff09;主要内容讲述#xff1a;机器学习#xff08;常用科学计算库的使用#xff09;基础定位、目标#xff0c;机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…
机器学习科学计算库完整教程附代码资料主要内容讲述机器学习常用科学计算库的使用基础定位、目标机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小案例。机器学习概述1.5 机器学习算法分类学习目标,学习目标,1 监督学习,2 无监督学习,3 半监督学习,4 强化学习。机器学习概述1.7 Azure机器学习模型搭建实验学习目标,学习目标,Azure平台简介,学习目标,1 深度学习 —— 神经网络简介,2 深度学习各层负责内容。Matplotlib3.2 基础绘图功能 — 以折线图为例学习目标,学习目标,1 完善原始折线图 — 给图形添加辅助功能,2 在一个坐标系中绘制多个图像,3 多个坐标系显示— plt.subplots(面向对象的画图方法),4 折线图的应用场景。Matplotlib3.3 常见图形绘制学习目标,学习目标,1 常见图形种类及意义,2 散点图绘制,3 柱状图绘制,4 小结。Numpy4.2 N维数组-ndarray学习目标,学习目标,1 ndarray的属性,2 ndarray的形状,3 ndarray的类型,4 总结。Numpy4.4 ndarray运算学习目标,学习目标,问题,1 逻辑运算,2 通用判断函数,3 np.where三元运算符。Pandas5.1Pandas介绍学习目标,学习目标,1 Pandas介绍,2 为什么使用Pandas,3 小结,学习目标。Pandas5.3 基本数据操作学习目标,学习目标,1 索引操作,2 赋值操作,3 排序,4 总结。Pandas5.6 文件读取与存储学习目标,学习目标,1 CSV,2 HDF5,3 JSON,4 小结。Pandas5.8 高级处理-数据离散化学习目标,学习目标,1 为什么要离散化,2 什么是数据的离散化,3 股票的涨跌幅离散化,4 小结。Pandas5.12 案例学习目标,学习目标,1 需求,2 实现,1.独立同分布(i.i.d.),2.简单解释 — 独立、同分布、独立同分布。
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~ 全套教程部分目录 部分文件图片 Matplotlib
学习目标
应用Matplotlib的基本功能实现图形显示应用Matplotlib实现多图显示应用Matplotlib实现不同画图种类
3.2 基础绘图功能 — 以折线图为例
学习目标 目标 掌握给图形添加辅助功能(如标注、x,y轴名称、标题等) 知道图形的保存 知道如何多次plot绘制图形 知道如何多个坐标系显示图形知道折线图的应用场景 1 完善原始折线图 — 给图形添加辅助功能
为了更好地理解所有基础绘图功能我们通过天气温度变化的绘图来融合所有的基础API使用
需求画出某城市11点到12点1小时内每分钟的温度变化折线图温度范围在15度~18度
效果 1.1 准备数据并画出初始折线图
import matplotlib.pyplot as plt
import random# 画出温度变化图# 0.准备x, y坐标的数据x range(60)
y_shanghai [random.uniform(15, 18) for i in x]# 1.创建画布plt.figure(figsize(20, 8), dpi80)# 2.绘制折线图plt.plot(x, y_shanghai)# 3.显示图像plt.show()1.2 添加自定义x,y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值
# 增加以下两行代码# 构造x轴刻度标签x_ticks_label [11点{}分.format(i) for i in x]# 构造y轴刻度y_ticks range(40)# 修改x,y轴坐标的刻度显示plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])如果没有解决过中文问题的话会显示这个样子 1.3 中文显示问题解决
解决方案一
下载中文字体黑体看准系统版本 步骤一下载 SimHei 字体或者其他的支持中文显示的字体也行 步骤二安装字体 linux下拷贝字体到 usr/share/fonts 下
sudo cp ~/SimHei.ttf /usr/share/fonts/SimHei.ttfwindows和mac下双击安装 步骤三删除~/.matplotlib中的缓存文件
cd ~/.matplotlib
rm -r *步骤四修改配置文件matplotlibrc
vi ~/.matplotlib/matplotlibrc将文件内容修改为
font.family : sans-serif
font.sans-serif : SimHei
axes.unicode_minus : False解决方案二
在Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦具体代码如下
from pylab import mpl# 设置显示中文字体mpl.rcParams[font.sans-serif] [SimHei]有时候字体更改后会导致坐标轴中的部分字符无法正常显示此时需要更改axes.unicode_minus参数
# 设置正常显示符号mpl.rcParams[axes.unicode_minus] False1.4 添加网格显示
为了更加清楚地观察图形对应的值
plt.grid(True, linestyle--, alpha0.5)1.5 添加描述信息
添加x轴、y轴描述信息及标题 通过fontsize参数可以修改图像中字体的大小 plt.xlabel(时间)
plt.ylabel(温度)
plt.title(中午11点0分到12点之间的温度变化图示, fontsize20)1.6 图像保存
# 保存图片到指定路径plt.savefig(test.png)注意plt.show()会释放figure资源如果在显示图像之后保存图片将只能保存空图片。
完整代码
import matplotlib.pyplot as plt
import random
from pylab import mpl# 设置显示中文字体mpl.rcParams[font.sans-serif] [SimHei]# 设置正常显示符号mpl.rcParams[axes.unicode_minus] False# 0.准备数据x range(60)
y_shanghai [random.uniform(15, 18) for i in x]# 1.创建画布plt.figure(figsize(20, 8), dpi100)# 2.绘制图像plt.plot(x, y_shanghai)# 2.1 添加x,y轴刻度# 构造x,y轴刻度标签x_ticks_label [11点{}分.format(i) for i in x]
y_ticks range(40)# 刻度显示plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])# 2.2 添加网格显示plt.grid(True, linestyle--, alpha0.5)# 2.3 添加描述信息plt.xlabel(时间)
plt.ylabel(温度)
plt.title(中午11点--12点某城市温度变化图, fontsize20)# 2.4 图像保存plt.savefig(./test.png)# 3.图像显示plt.show()2 在一个坐标系中绘制多个图像
2.1 多次plot
需求再添加一个城市的温度变化
收集到北京当天温度变化情况温度在1度到3度。怎么去添加另一个在同一坐标系当中的不同图形其实很简单只需要再次plot即可但是需要区分线条如下显示 # 增加北京的温度数据y_beijing [random.uniform(1, 3) for i in x]# 绘制折线图plt.plot(x, y_shanghai)# 使用多次plot可以画多个折线plt.plot(x, y_beijing, colorr, linestyle--)我们仔细观察用到了两个新的地方一个是对于不同的折线展示效果一个是添加图例。
2.2 设置图形风格
颜色字符风格字符r 红色- 实线g 绿色- - 虚线b 蓝色-. 点划线w 白色: 点虚线c 青色 留空、空格m 洋红y 黄色k 黑色
2.3 显示图例
注意如果只在plt.plot()中设置label还不能最终显示出图例还需要通过plt.legend()将图例显示出来。
# 绘制折线图plt.plot(x, y_shanghai, label上海)# 使用多次plot可以画多个折线plt.plot(x, y_beijing, colorr, linestyle--, label北京)# 显示图例plt.legend(locbest)Location StringLocation Codebest0upper right1upper left2lower left3lower right4right5center left6center right7lower center8upper center9center10
完整代码
# 0.准备数据x range(60)
y_shanghai [random.uniform(15, 18) for i in x]
y_beijing [random.uniform(1,3) for i in x]# 1.创建画布plt.figure(figsize(20, 8), dpi100)# 2.绘制图像plt.plot(x, y_shanghai, label上海)
plt.plot(x, y_beijing, colorr, linestyle--, label北京)# 2.1 添加x,y轴刻度# 构造x,y轴刻度标签x_ticks_label [11点{}分.format(i) for i in x]
y_ticks range(40)# 刻度显示plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])# 2.2 添加网格显示plt.grid(True, linestyle--, alpha0.5)# 2.3 添加描述信息plt.xlabel(时间)
plt.ylabel(温度)
plt.title(中午11点--12点某城市温度变化图, fontsize20)# 2.4 图像保存plt.savefig(./test.png)# 2.5 添加图例plt.legend(loc0)# 3.图像显示plt.show()2.4 练一练
练习多次plot流程(从上面复制代码,到自己电脑,确保每人环境可以正常运行),
同时明确每个过程执行实现的具体效果
3 多个坐标系显示— plt.subplots(面向对象的画图方法)
如果我们想要将上海和北京的天气图显示在同一个图的不同坐标系当中效果如下 可以通过subplots函数实现(旧的版本中有subplot使用起来不方便)推荐subplots函数
matplotlib.pyplot.subplots(nrows1, ncols1, **fig_kw) 创建一个带有多个axes(坐标系/绘图区)的图
Parameters: nrows, ncols : 设置有几行几列坐标系int, optional, default: 1, Number of rows/columns of the subplot grid.Returns:
fig : 图对象
axes : 返回相应数量的坐标系设置标题等方法不同set_xticksset_yticksset_xlabelset_ylabel关于axes子坐标系的更多方法参考[
注意plt.函数名()相当于面向过程的画图方法axes.set_方法名()相当于面向对象的画图方法。
# 0.准备数据x range(60)
y_shanghai [random.uniform(15, 18) for i in x]
y_beijing [random.uniform(1, 5) for i in x]# 1.创建画布# plt.figure(figsize(20, 8), dpi100)fig, axes plt.subplots(nrows1, ncols2, figsize(20, 8), dpi100)# 2.绘制图像# plt.plot(x, y_shanghai, label上海)# plt.plot(x, y_beijing, colorr, linestyle--, label北京)axes[0].plot(x, y_shanghai, label上海)
axes[1].plot(x, y_beijing, colorr, linestyle--, label北京)# 2.1 添加x,y轴刻度# 构造x,y轴刻度标签x_ticks_label [11点{}分.format(i) for i in x]
y_ticks range(40)# 刻度显示# plt.xticks(x[::5], x_ticks_label[::5])# plt.yticks(y_ticks[::5])axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])# 2.2 添加网格显示# plt.grid(True, linestyle--, alpha0.5)axes[0].grid(True, linestyle--, alpha0.5)
axes[1].grid(True, linestyle--, alpha0.5)# 2.3 添加描述信息# plt.xlabel(时间)# plt.ylabel(温度)# plt.title(中午11点--12点某城市温度变化图, fontsize20)axes[0].set_xlabel(时间)
axes[0].set_ylabel(温度)
axes[0].set_title(中午11点--12点某城市温度变化图, fontsize20)
axes[1].set_xlabel(时间)
axes[1].set_ylabel(温度)
axes[1].set_title(中午11点--12点某城市温度变化图, fontsize20)# # 2.4 图像保存plt.savefig(./test.png)# # 2.5 添加图例# plt.legend(loc0)axes[0].legend(loc0)
axes[1].legend(loc0)# 3.图像显示plt.show()4 折线图的应用场景 呈现公司产品(不同区域)每天活跃用户数 呈现app每天下载数量 呈现产品新功能上线后,用户点击次数随时间的变化 拓展画各种数学函数图像 注意plt.plot()除了可以画折线图也可以用于画各种数学函数图像 代码
import numpy as np# 0.准备数据x np.linspace(-10, 10, 1000)
y np.sin(x)# 1.创建画布plt.figure(figsize(20, 8), dpi100)# 2.绘制函数图像plt.plot(x, y)# 2.1 添加网格显示plt.grid()# 3.显示图像plt.show()5 小结 添加x,y轴刻度【知道】 plt.xticks() plt.yticks() 注意:在传递进去的第一个参数必须是数字,不能是字符串,如果是字符串吗,需要进行替换操作 添加网格显示【知道】 plt.grid(linestyle--, alpha0.5) 添加描述信息【知道】 plt.xlabel() plt.ylabel() plt.title() 图像保存【知道】 plt.savefig(路径) 多次plot【了解】 直接进行添加就OK 显示图例【知道】 plt.legend(locbest) 注意:一定要在plt.plot()里面设置一个label,如果不设置,没法显示 多个坐标系显示【了解】 plt.subplots(nrows, ncols) 折线图的应用【知道】 1.应用于观察数据的变化 2.可是画出一些数学函数图像
未完待续 同学们请等待下一期
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~