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()
拓展:
学习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()
如需要将直线使用蓝色圆点表示出来可将语句变更为: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()
在上面连接中还介绍了如下格式化字符,详情点开链接进一步查看学习。
实例(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()

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()
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内容点击这里(线条标记、改变坐标、散点图、等高线图等内容)