基本设置
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
图的外观设置
plt.plot([1,2,3,4], [10, 22, 32, 6]) # 每一个轴传进去的都是一个列表
xlabel 和 ylabel 分别设定轴的名字 并通过 fontsize 属性设置字体大小
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=20)
plt.plot([1,2,3,4], [10, 22, 32, 6]) # 每一个轴传进去的都是一个列表
给图设置标题名 网格 在指定点处显示文字
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=20)
plt.title('YMY')
plt.grid(True)
plt.text(3.5, 30, 'qwert')
plt.plot([1,2,3,4], [10, 22, 32, 6])
grid()方法 第一个参数必填,后面的都可以省略
加注释
annotate 方法为图加注释:第一个参数代表注释内容; xy表示箭头最终指向的位置; xytext表示注释的位置; facecolor表示箭头颜色; shrink表示箭头缩放
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=20)
plt.title('YMY')
plt.grid(True)
plt.text(3.5, 30, 'qwert')
plt.annotate('3333', xy=(2.0, 15), xytext=(2.5, 20), arrowprops=dict(facecolor='red', shrink=0.09))
plt.plot([1,2,3,4], [10, 22, 32, 6])
线条的样式
在 plot 方法中: ①linestyle属性设置线条的样式; ②color属性设置线条颜色; ③linewidth属性设置线条粗细; ④marker设置标记点 取值和linestyle一样; ⑤markerfacecolor设置标记点颜色 取值和color一样; ⑥markersize属性设置标记点大小 ⑦alpha属性设置线条的透明度 取值在0-1之间
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=20)
plt.plot([1,2,3,4], [10, 22, 32, 6], '-.', color='r', linewidth=5)
同时画多条线:①可以分别调用 plot 方法 需要几条线就调用几次 ②也可以在一个 plot 中画出多条线 不过这时候 线条样式和颜色要合并在一起
x = np.linspace(-5, 5)
y = np.sin(x)
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=20)
plt.plot([1,2,3,4], [10, 12, 8, 6], 'r-.',
x, y, 'b-', marker='o', markerfacecolor='y')
如何同时画出多个不同的图呢?
plt.subplot(221)
plt.plot(x, y, color='b')
plt.subplot(222)
plt.plot(x, y, color='g')
plt.subplot(223)
plt.plot(x, y, color='r')
plt.subplot(224)
plt.plot(x, y, color='y')
解释一下含义
subplot中传入的数字的含义: 第一个2表示2行 第2个2表示两列 个位上的数字代表标号 前两位数字定义了排列形式
当然也可以不用全部填满自己定义的排列形式 标号按行优先标号
plt.subplot(221)
plt.plot(x, y, color='b')
plt.subplot(224)
plt.plot(x, y, color='r')
刻度设置
m = ['2022/3/18', '2022/3/19', '2022/3/20', '2022/3/21', '2022/3/22', '2022/3/23', '2022/3/24',
'2022/3/25', '2022/3/26', '2022/3/27', '2022/3/28','2022/3/29', '2022/3/30', '2022/3/31']
n = np.random.randint(200, 400, size=len(m))
plt.plot(m, n)
是不是发现 X轴的刻度太过拥挤了? 那如何设置轴的刻度
plt.xticks(range(1, len(m), 2))
plt.plot(m, n)
xticks()方法就是设置X轴刻度的 传入的第一个参数就表示将X轴的列表设置间隔输入, 但是还是太挤了 我们当然可以 把2再加大。这里还有一个方法 就是旋转
plt.xticks(range(1, len(m), 2), rotation=45)
plt.plot(m, n)
也可以为标签赋上新的值 不过数量应该与之前保持一致
plt.xticks(range(0, len(m), 2), rotation=45, labels=list(range(1, 8)), color='red')
plt.plot(m, n)