深度学习必备三种基本绘图技能

在深度学习中,常用的图大概有一下几种:

  • 曲线图
  • 点状图
  • 显示图片

1 安装

一般都是自带的,比如conda 软件,若没有,桌面安装呢?如果已经安装了,可以略过。

1.打开控制台(win+R)->输入cmd
2.输入下面命令

pip install matplotlib

或者

conda install matplotlib

完成即可。

1.1 显示中文

import matplotlib.pyplot as plt 
# 显示中文 
plt.rcParams['font.sans-serif'] = [u'SimHei'] 
plt.rcParams['axes.unicode_minus'] = False

下面分别介绍下他们基本使用方法。

2 曲线图

2.1 曲线图的基本使用

通过绘制cos函数的曲线图

import matplotlib.pyplot as plt  
import numpy as np

def f(t):  
    return np.exp(-t) * np.cos(2 * np.pi * t)  
  
t1 = np.arange(0.0, 3.0, 0.01)
plt.plot(t1,f(t1))  
  
plt.show()

效果如下:
在这里插入图片描述

2.2 图的基本属性

属性用途
xlabel设置x为x
ylabel设置y为y
ylim(m,n)设置y为在m-n之间
xlim(m,n)设置x为范围在m-n之间
title设置图标的标题

具体代码如下:

import matplotlib.pyplot as plt  
import numpy as np  

def f(t):  
    return np.exp(-t) * np.cos(2 * np.pi * t)  

t1 = np.arange(0.0, 3.0, 0.01)  

plt.plot(t1, f(t1))  
  
plt.xlabel("x")  #设置x为x
plt.ylabel("y")  #设置y为y
plt.ylim(0, 0.6)  #设置y为在0-0.6之间
plt.xlim((0, 2))  #设置x为范围在0-2之间
 
plt.show()

效果如下:
在这里插入图片描述

2.3 plot属性设置

属性用途系统默认值
label为线条设置标签
color设置线条的颜色g代表green,b代表blue,等等
import matplotlib.pyplot as plt  
import numpy as np  
  
  
def f(t):  
    return np.exp(-t) * np.cos(2 * np.pi * t)  

t1 = np.arange(0.0, 3.0, 0.01)   
  
plt.plot(t1, f(t1), label="cos", color="g")  
plt.plot(t1, t1 ** 2, label="quadratic", color="b")  

plt.show()

对两种曲线分别设置了绿色和蓝色,效果如下:
在这里插入图片描述

2.4 legend使用

当你在绘制多个图时,需要对不同的颜色的图进行标注和说明,则可以用图例展示。
为每个曲线设置label和颜色,在设置legend()函数即可。

在这里插入图片描述

2.5 subplot具体使用

在实际的项目中,你可能要化多种类型的图作对比,能不能在一个画布上画多个图呢?可以subplot来解决。

subplot 最常用的有两种种方法,我们先将不怎么容易理解的方法。(从我的角度)。

2.5.1 subplot(pos, kwargs)

这pos由行,列,索引组成,什么意思呢?

索引对应的位置,从左往右,从上往下,以2行,2列为例,简单说明下index:

列1列2
行112
行234

subplot(221)表示这个图有4(2*2)个子图表,放在第一个。具体的代码如下:

import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)

axs1 = plt.subplot(221)  #第一个
axs1.hist(data[0])  
  
axs2 = plt.subplot(222)  #第二个
axs2.scatter(data[0], data[1]);  
  
axs3 = plt.subplot(223)  #第三个
axs3.plot(data[0], data[1]);  
  
axs4 = plt.subplot(224)  #第四个
axs4.hist2d(data[0], data[1]);  
  
plt.show()

在这里插入图片描述

如果只有三张图,在最下面铺开,桌面处理呢,其实就是你可以这么想,将画布分为上半部分和下半部分,上半部分显示两个,下半部分显示一个。

import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  

axs1 = plt.subplot(221)  #两行两列,放在第一个。
axs1.hist(data[0])  
  
axs2 = plt.subplot(222)  #两行两列,放在第二个。
axs2.scatter(data[0], data[1]);  
  
axs3 = plt.subplot(212)  
axs3.plot(data[0], data[1]);  #两行一列,放在第二行

plt.show()

效果如下:
在这里插入图片描述

2.5.2 subplot(nrows, ncols, index, **kwargs)

这种方法其实更容易立即,更加直观。nrows代表行,ncols代表列,index代表放在哪个位置上和上面的subplot(position)本质上是一样的。

  • 首先实现一个2*2的图标
import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  
  
axs1 = plt.subplot(2, 2, 1)  
axs1.hist(data[0])  
  
axs2 = plt.subplot(2, 2, 2)  
axs2.scatter(data[0], data[1], color="b");  
  
axs3 = plt.subplot(2,2,3)  
axs3.plot(data[0], data[1]);  

axs4 = plt.subplot(2,2,4)  
axs4.hist2d(data[0], data[1]);  
  
plt.show()

效果也是一样的

  • 其次,实现一个和Figure_subplot_2一样的图。
import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  

axs1 = plt.subplot(2,2,1)  #两行两列,放在第一个。
axs1.hist(data[0])  
  
axs2 = plt.subplot(2,2,2)  #两行两列,放在第二个。
axs2.scatter(data[0], data[1]);  
  
axs3 = plt.subplot(2,1,2)  
axs3.plot(data[0], data[1]);  #两行一列,放在第二行

plt.show()

2.6 注释annotate

通过annotate实现注释的,主要由三个参数:

字段意义
s注释的内容
xy箭头的位置
xytext注释内容位置
arrowprops箭头的样式

具体代码实现如下:

x = np.arange(-10, 11, 1)  
y = x * x  
plt.title('title')  
plt.plot(x, y)  
# 添加注释  
plt.annotate('this is annotate', xy=(0, 1), xytext=(-2, 22), arrowprops={'headwidth': 10, 'facecolor': 'r'})  
plt.show()

效果如下:
在这里插入图片描述

3 点状图

先看下效果图:
在这里插入图片描述

代码如下:

import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  
  
plt.scatter(data[0], data[1],c="b",marker='o')  
  
plt.show()

scatter中包括哪些参数呢?

3.1 参数说明

参数名称使用方法
x点的x位置可以是固定值,也可以是list
y点的y位置可以是固定值,也可以是list
s设置点的大小是固定大小
c颜色可以是rgb值(#782728),也颜色字符(b)
marker点的形状见下面的表格
alpha透明度0-1之间
linewidths设置边框的宽度大于0的值

其中marker有哪些呢,可以在matplotlib.markers.MarkerStyle.markers找到,具体有哪些呢,我列举出来了,见下面表格:

marker值形状
‘o’原点
‘v’下三角
‘^’上三角
‘<’左三角
‘>’右三角
‘8’八边形
‘s’正方形
‘p’五边形
‘*’星形
‘h’六边形1
‘H’六边形2
‘D’菱形
‘d’单菱形
‘P’填充的加号
‘X’填充的乘号

3.2 具体实现

具体示例:

import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  
  
plt.scatter(data[0], data[1], s=data[1] * 20, c='b', marker='o', alpha=0.3, linewidths=2)  
  
plt.show()

效果图:
在这里插入图片描述

import matplotlib.pyplot as plt  
import numpy as np  
  
np.random.seed(19680801)  
data = np.random.randn(2, 100)  
  
plt.scatter(data[0], data[1], s=data[1] * 20, c='r', marker='^', alpha=0.9, linewidths=1)  
  
plt.show()

效果图:
在这里插入图片描述

4 显示图片

import matplotlib.pyplot as plt  
  
image_content = plt.imread('myworkspace/pandasDemo/Figure_subplot.png')  #读取图片信息
plt.imshow(image_content)  #显示图片
plt.show()
  • 2
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术人Howzit

钱不钱的无所谓,这是一种鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值