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

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

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

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()

效果如下:
深度学习必备三种基本绘图技能_第1张图片

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张图片

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()

对两种曲线分别设置了绿色和蓝色,效果如下:
深度学习必备三种基本绘图技能_第3张图片

2.4 legend使用

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

深度学习必备三种基本绘图技能_第4张图片

2.5 subplot具体使用

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

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

2.5.1 subplot(pos, kwargs)

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

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

列1 列2
行1 1 2
行2 3 4

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()

深度学习必备三种基本绘图技能_第5张图片

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

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()

效果如下:
深度学习必备三种基本绘图技能_第6张图片

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()

效果如下:
深度学习必备三种基本绘图技能_第7张图片

3 点状图

先看下效果图:
深度学习必备三种基本绘图技能_第8张图片

代码如下:

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()

效果图:
深度学习必备三种基本绘图技能_第9张图片

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()

效果图:
深度学习必备三种基本绘图技能_第10张图片

4 显示图片

import matplotlib.pyplot as plt  
  
image_content = plt.imread('myworkspace/pandasDemo/Figure_subplot.png')  #读取图片信息
plt.imshow(image_content)  #显示图片
plt.show()

你可能感兴趣的:(深度学习入门,深度学习,python,人工智能)