看的一本书:深度学习之PyTorch实战计算机视觉。怕以后找不到,所以先放在这里。
Matplotlib绘画库
在Notebook中演示
线性图
import matplotlib.pyplot as plt import numpy as np %matplotlib inline np.random.seed(42) a = np.random.randn(30)
b = np.random.randn(30) plt.plot(a, "r--o", b,"b-*")
x = np.random.randn(30)生成30个随机数比并赋值给变量x。
plt.plot(x, "r--o")将这30个随机参数以点的方式回执出来并用线条进行连接。参数r--o标记参数点使用的形状,连接点使用的线条颜色和线型。
用于设置线型图中线条颜色的常用参数如下:
b 指定描绘的线条颜色为蓝色
g 绿色
r 红色
c 蓝绿色
m 洋红色
y 黄色
k 黑色
w 白色
用于设置线性图中标记参数点形状的常用参数如下:
o 指定标记实际使用点使用的形状为圆形
* *型
+ +型
x x型
用于设置线性图中连接参数点线型形状的常用参数如下:
- 指定线条形状为实线
-- 虚线
-. 点实线
: 点线
标签和图例
plt.title("tablename")
标签的显示代码:plt.xlabel("X") plt.ylabel("Y")
图例的显示代码:plt.legend([X,Y],["X","Y"]) 第一个列表参数是在图中实际使用的标记和线型,第2个列表参数是对应图例的文字描述
子图(Subplot)
a = np.random.randn(30) b = np.random.randn(30) c = np.random.randn(30) d = np.random.randn(30) fig = plt.figure() ax1 = fig.add_subplot(2,2,1) ax2 = fig.add_subplot(2,2,2) ax3 = fig.add_subplot(2,2,3) ax4 = fig.add_subplot(2,2,4) A, = ax1.plot(a, "r--o") ax1.legend([A], ["A"]) #BCD一样的,略写了
fig = plt.figure()定义了一个实例,向该实例中添加子图。(2,2, 1)前两个数字表示把整块图分成了两行两列,最后一个数字表示具体使用哪一张子图进行绘制
散点图(scatter)
import matplotlib.pyplot as plt import numpy as np %matplotlib inline np.random.seed(42) x = np.random.randn(30) y = np.random.randn(30) plt.scatter(x,y,c="g", marker="o", label="(X,Y)") plt.title("Example") plt.xlabel("X") plt.ylabel("Y") plt.legend(loc=1) plt.show()
plt.scatter(x,y,c="g", marker="o", label="(X,Y)")为核心代码。
c 参数点颜色
marker 参数点形状
label 参数点使用的图例
plt.legend(loc=1)对图例的位置进行设置。loc=0,最好的位置;1右上角的位置;2左上角;3左下角;4右下角位置
直方图(Histogram)
import matplotlib.pyplot as plt import numpy as np %matplotlib inline np.random.seed(42) x = np.random.randn(1000) plt.hist(x, bins=20, color="g") plt.title("Example") plt.xlabel("X") plt.ylabel("Y") plt.show()
核心代码:plt.hist(x, bins=20, color="g"),bins用于指定我们绘制的直方图条纹的数量。
饼图
import matplotlib.pyplot as plt labels = ['Dogs', 'Cats', 'Birds'] size = [15, 50, 35] #所占百分比 plt.pie(sizes, explode=(0,0,0.1), labels=labels, autopct='%1.1f%%', startangle=90) plt.axis('equal') plt.show()
核心代码:
plt.pie(sizes, explode=(0,0,0,1), labels=labels, autopct='%1.1f%%', startangle=90)
sizes三个数字确定每部分所占比例;
explode设置为0,0,0.1就能突出第三部分
autopct将sizes中的数据浮点精度进行显示
startangle绘制第一块饼图时与x轴正方向的夹角度数
plt.axis('equal')是必不可少的,用于保证x轴和y轴的刻度保持一样,保证饼图是圆的