1. matpltlib库

1. 简单画图

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(-1,1,50)
y=2*x+2
plt.plot(x,y)
plt.show()

2. 多窗口figure

每次调用figure()函数都会生成一个新窗口,后续的plot()都会在此figure中

2.1. figure()参数

  • num: 窗口名的序号,即“figure 1”, “figure 2”...“figure num”
  • figsize: tuple调整大小

3. plot划线函数

3.1. 参数

  • color: "red"
  • linewidth: 1.0是默认
  • linestyle
    • “--”: 虚线

3.2. 示例代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 20)
y1 = x * 2 + 1
# 第一个窗口
plt.figure()
plt.plot(x, y1)

# 第二个窗口
plt.figure(num=3, figsize=(8, 6))
y2 = x * x + 1
plt.plot(x, y2)
plt.plot(x, y1, color="red", linewidth=3, linestyle="--")
plt.show()
1. matpltlib库_第1张图片
2018-06-28-15-32-00.png

4. 修改坐标轴参数

  • 范围: plt.xlim(a,b)
  • 名称: plt.xlabel("x axis")
  • 重新标记: plt.xtick([...],可选:[...])

4.1. 示例代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 20)
y1 = x * 2 + 1
plt.figure()
plt.plot(x, y1)
# 坐标轴范围
plt.xlim(0, 2)
plt.ylim(0, 4)
# 坐标轴名称
plt.xlabel("I am x axis")
plt.ylabel("I am y axis")
# 坐标轴重新标号
x_tick = np.linspace(0, 2, 10)
plt.xticks(x_tick)  # 直接用数字显示

y_tick = np.linspace(0, 4, 3)
y_name = ["bad", "normal", "good"]
plt.yticks(y_tick, y_name)  # 命名显示

plt.show()
1. matpltlib库_第2张图片
2018-06-28-15-58-00.png

5. 添加图例plt.legend()

图例显示的名称为plot(label="name")函数label参数的值

5.1. 参数

  • 指定显示位置: loc
    • upper/lower
    • right/left

5.2. 示例代码

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 50)
y1 = x * 2 + 1
y2 = x ** 2
plt.figure()
plt.plot(x, y1, label="y1")
plt.plot(x, y2, label="y2")
plt.legend(loc="upper left")
plt.show()
1. matpltlib库_第3张图片
2018-06-29-10-14-58.png

6. 多图显示

6.1. 多图合一

  • plt.subplot(m, n, x): 将整个figure分为m,n格,接下来的plot在x格
  • 示例代码
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 50)
y1 = x * 2 + 1
y2 = x ** 2
y3 = x ** 3

plt.subplot(2, 2, 1)
plt.plot(x, y1, label="y1")
plt.legend(loc="upper left")

plt.subplot(2, 2, 2)
plt.plot(x, y2, label="y2")
plt.legend(loc="upper left")

plt.subplot(2, 2, 3)
plt.plot(x, y3, label="y3")
plt.legend(loc="upper left")

plt.show()
1. matpltlib库_第4张图片
2018-06-29-10-27-29.png

7. 绘制动态图

  • 知乎文章: 使用交互模式->清空->再绘的方法
  • 关于清空:
    • plt.cla() clears an axis, i.e. the currently active axis in the current figure. It leaves the other axes untouched.
    • plt.clf() clears the entire current figure with all its axes, but leaves the window opened, such that it may be reused for other plots.
    • plt.close() closes a window, which will be the current window, if not specified otherwise.

你可能感兴趣的:(1. matpltlib库)