一、可视化

1.单张图片读取并可视化

书本上学习实例:

  import torch 

  import torch.nn as nn

  import matplotlib.pyplot as plt

  from PIL import Image

  #读取一张图片--转化为灰度图片--转化为Numpy数组

  myim = Image.open("data/Lenna.png")

  myimgray = np.array(myim.convert("L"),dtype=np.float)

  ##可视化图片

  plt.figure(figsize(6,6))

  plt.imshow(myimgray,cmap=plt.cm.gray)

  plt.axis("off")  ##不显示坐标

  plt.show()
View Code

拓展:

学习matplotlib点击这里:(菜鸟教程)

下面是教程当中的部分例子(方便查看学习),具体更多的用法看链接

实例(1),单张图片绘制一个线条:

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()
View Code

 如需要将直线使用蓝色圆点表示出来可将语句变更为:plt.plot(x,y,"ob"),其中o表示圆形标记,b表示蓝色

import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1) 
y = np.sin(x)
plt.title("sine wave form")  
# 使用 matplotlib 来绘制点
plt.plot(x, y) 
plt.show()
View Code

在上面连接中还介绍了如下格式化字符,详情点开链接进一步查看学习。

实例(2)绘制多个线条:

 subplot() 函数允许你在同一图中绘制不同的东西。

import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦和余弦曲线上的点的 x 和 y 坐标 
x = np.arange(0,  3  * np.pi,  0.1) 
y_sin = np.sin(x) 
y_cos = np.cos(x)  
# 建立 subplot 网格,高为 2,宽为 1  
# 激活第一个 subplot
plt.subplot(2,  1,  1)  
# 绘制第一个图像 
plt.plot(x, y_sin) 
plt.title('Sine')  
# 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2) 
plt.plot(x, y_cos) 
plt.title('Cosine')  
# 展示图像
plt.show()
View Code

from matplotlib import pyplot as plt 
x =  [5,8,10] 
y =  [12,16,6] 
x2 =  [6,9,11] 
y2 =  [6,15,7] 
plt.bar(x, y, align =  'center') ##5对应12,8对应16
plt.bar(x2, y2, color =  'g', align =  'center') ##align='center'居中
plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 
plt.show()
View Code

 matplotlib.pyplot.bar(left, height, alpha=1, width=0.8, color=, edgecolor=, label=, lw=3)

 1. left:x轴的位置序列,一般采用range函数产生一个序列,但是有时候可以是字符串

 2. height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;

 3. alpha:透明度,值越小越透明

 4. width:为柱形图的宽度,一般这是为0.8即可;

 5. color或facecolor:柱形图填充的颜色;

 6. edgecolor:图形边缘颜色

 7. label:解释每个图像代表的含义,这个参数是为legend()函数做铺垫的,表示该次bar的标签,其中legend()函数loc参数如下:

'best'         : 0, (only implemented for axes legends)(自适应方式)
'upper right'  : 1,
'upper left'   : 2,
'lower left'   : 3,
'lower right'  : 4,
'right'        : 5,
'center left'  : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center'       : 10,

8. linewidth or linewidths or lw:边缘or线的宽

matplotlib中柱状图bar的使用:

详情点击这里(对于横坐标、纵坐标标签修改、颜色变化、加上标签等的使用)

Matplotlib默认配置的具体内容

# 导入 matplotlib 的所有内容(nympy 可以用 np 这个名字来使用)
from pylab import *

# 创建一个 8 * 6 点(point)的图,并设置分辨率为 80
figure(figsize=(8,6), dpi=80)

# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plot(X, C, color="blue", linewidth=1.0, linestyle="-")

# 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plot(X, S, color="green", linewidth=1.0, linestyle="-")

# 设置横轴的上下限
xlim(-4.0,4.0)

# 设置横轴记号
xticks(np.linspace(-4,4,9,endpoint=True))

# 设置纵轴的上下限
ylim(-1.0,1.0)

# 设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))

# 以分辨率 72 来保存图片
# savefig("exercice_2.png",dpi=72)

# 在屏幕上显示
show()

更多Matplotlib内容点击这里(线条标记、改变坐标、散点图、等高线图等内容)

原文地址:https://www.cnblogs.com/2020zxc/p/13620865.html