前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 3-11 Matplotlib数据可视化基础

机器学习入门 3-11 Matplotlib数据可视化基础

作者头像
触摸壹缕阳光
发布2022-11-08 13:25:11
7380
发布2022-11-08 13:25:11
举报

matplotlib 基础

Matplotlib 是一个 Python 的 2D 绘图库,在导入 Matplotlib 库的时候,通常会设置一个别名 mpl。Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。使用 Pyplot 可以很方便的帮助我们绘制出 2D 图表,在使用 Pyplot 时候通常也会为 Pyplot 设置一个别名 plt。

代码语言:javascript
复制
import matplotlib as mpl
import matplotlib.pyplot as plt

为了绘制图像,这里创建一个一维向量作为自变量 x,并构建正弦函数输出因变量 y。

代码语言:javascript
复制
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)

为了更好地观察自变量 x 和因变量 y 的关系,最直观的就是绘制函数曲线。我们可以使用 plt.plot 绘制 x 和 y 的曲线,plt.plot 的返回值为 matplotlib.lines.Line2D,要想显示绘制曲线,还需要调用 plt.show。这里需要说明,绘制曲线的时候,我们可以指定各种样式,设置这些样式有两种方式:

  • 第一种,通过为 plt.plot 传入指定参数;
  • 第二种,通过 plt.plot 的返回值来设置,也就是使用返回的 matplotlib.lines.Line2D 对象,调用对象一些设置样式的方法。

一般使用第一种方式。

代码语言:javascript
复制
plt.plot(x, y)
plt.show()

plt.plot 实质绘制的是折线图,也就是说点与点之间是通过直线连接的,只不过我们采样的 100 个点比较密集,因此最终绘制的图像整体看上去是一个非常平滑的曲线。如果我们采样的间隔点比较远的话,可以很清楚的看出两点之间是通过一条直线连接的。

代码语言:javascript
复制
x_1 = np.linspace(0, 10, 10)
y_1 = np.sin(x_1)

plt.plot(x_1, y_1)
plt.show()

我们可以同时绘制多个曲线。

代码语言:javascript
复制
cosy = np.cos(x)
siny = y.copy()

plt.plot(x, siny)
plt.plot(x, cosy)
plt.show()

plt.plot 传入 color 参数更改绘制曲线的颜色。

代码语言:javascript
复制
plt.plot(x, siny)
plt.plot(x, cosy, color = "red")
plt.show()

plt.plot 传入 linestyle 参数更改绘制曲线的样式。

代码语言:javascript
复制
plt.plot(x, siny)
plt.plot(x, cosy, color = "red", linestyle = "--")
plt.show()

各种样式以及对应的取值。

使用 plt.xlimplt.ylim 分别对图像的横、纵坐标轴的取值范围进行限定。

代码语言:javascript
复制
plt.plot(x, siny)
plt.plot(x, cosy, color = "red", linestyle = "--")
plt.xlim(-5, 15)
plt.ylim(0, 1.5)
plt.show()

还可以使用 plot.axis 同时对横纵坐标轴的取值范围进行调整,参数为一个列表,列表中前两个值为横坐标轴的取值范围,后两个值为纵坐标轴的取值范围。

代码语言:javascript
复制
plt.plot(x, siny)
plt.plot(x, cosy, color = "red", linestyle = "--")
plt.axis([-1, 11, -2, 2])
plt.show()

可以使用 plt.xlabelplt.ylabel 为横纵坐标轴赋予含义。

代码语言:javascript
复制
plt.plot(x, siny, label = "sin(x)")
plt.plot(x, cosy, color = "red", linestyle = "--")
plt.xlabel("x axis")
plt.ylabel("y value")
plt.legend()
plt.show()

同时可以显示图例,用于说明各个曲线。

代码语言:javascript
复制
# 直接对两个轴进行调整
plt.plot(x, siny, label = "sin(x)")
plt.plot(x, cosy, color = "red", linestyle = "--", label = "cos(x)")
plt.xlabel("x axis")
plt.ylabel("y value")
plt.legend()
plt.show()

使用 plt.title 为图表起标题。

代码语言:javascript
复制
plt.plot(x, siny, label = "sin(x)")
plt.plot(x, cosy, color = "red", linestyle = "--", label = "cos(x)")
plt.xlabel("x axis")
plt.ylabel("y value")
plt.legend()
plt.title("Welcome to the ML World!")
plt.show()

绘制散点图

绘制折线图使用 plt.plot,绘制散点图使用 plt.scatter

代码语言:javascript
复制
plt.scatter(x, siny) 
plt.scatter(x, cosy, color = "red") 
plt.show()

在机器学习中,通常将绘制折线图的横坐标表示为特征,纵坐标表示为对应的取值,但是在散点图中,横纵坐标轴都表示为特征,而散点图的形状或者颜色表示为对应的取值。在两个特征的分类任务中,我们将横坐标表示为第一个特征,纵坐标表示为第二个特征,将类别信息通过散点图的颜色进行表示。

代码语言:javascript
复制
x = np.random.normal(0, 1, 10000)
y = np.random.normal(0, 1, 10000)
plt.scatter(x, y, alpha = 0.1) # alpha为透明图
plt.show()

References:

Python3入门机器学习 经典算法与应用: https://coding.imooc.com/class/chapter/169.html#Anchor

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • matplotlib 基础
  • 绘制散点图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档