1. 首页
  2. 编程语言

Matpotlib.pyplot总结

经常看到这样一行代码

  1. import matplotlib.pyplot as plt

这个plt,其实大有来头,它集成了画图的很多方便函数,使用起来也能够结合numpylist等工具。

基本用法

我们可以从一张画布开始。

  1. fig, axes = plt.subplots()

fig是画板,axes是画布,如果subplots有参数控制多个画布,axes可以迭代。

  1. fig = plt.figure() # 新建画板
  2. axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # 大画布
  3. axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # 小画布
  4. axes1.plot(x, y, 'r') # 大画布
  5. axes2.plot(y, x, 'g') # 小画布

Matpotlib.pyplot总结

饼图

  1. label = 'Cat', 'Dog', 'Cattle', 'Sheep', 'Horse' # 各类别标签
  2. color = 'r', 'g', 'r', 'g', 'y' # 各类别颜色
  3. size = [1, 2, 3, 4, 5] # 各类别占比
  4. explode = (0, 0, 0, 0, 0.2) # 各类别的偏移半径
  5. axes.pie(size, colors=color, explode=explode, labels=label, shadow=True, autopct='%1.1f%%')

Matpotlib.pyplot总结

colorbar

  1. arr = np.random.random([3, 3])
  2. cx = axes.matshow(arr)
  3. fig.colorbar(cx)
  4. axes.set_xticklabels([''] + ["hello", "world", "now"])

Matpotlib.pyplot总结

等高线

  1. # 生成网格矩阵
  2. x = np.linspace(-5, 5, 500)
  3. y = np.linspace(-5, 5, 500)
  4. X, Y = np.meshgrid(x, y)
  5. # 等高线计算公式
  6. Z = (1 - X / 2 + X ** 3 + Y ** 4) * np.exp(-X ** 2 - Y ** 2)
  7. plt.contourf(X, Y, Z)

Matpotlib.pyplot总结

间断直方图

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. plt.xlim(0, 360)
  4. plt.ylim(5, 35)
  5. plt.xlabel("Schedule")
  6. plt.xticks(np.arange(0, 361, 60))
  7. plt.yticks([15, 25], ["Opera A", "Opera B"])
  8. plt.grid(ls="-", lw=1, color="gray")
  9. plt.title("Schedule comparation")
  10. plt.broken_barh([(30, 100), (180, 50), (260, 60)], (20, 8), facecolors="#1f78b4")
  11. plt.broken_barh([(60, 90), (190, 20), (230, 30), (280, 60)], (10, 8), facecolors=(
  12. "#7fc97f", "#beaed4", "#fdc086", "#ffff99"))
  13. plt.show()

Matpotlib.pyplot总结

作图规范

添加图标题,图例,网格。

  1. fig, axes = plt.subplots()
  2. axes.set_xlabel('x label') # 横轴名称
  3. axes.set_ylabel('y label')
  4. axes.set_title('title') # 图形名称
  5. axes.plot(x, x**2)
  6. axes.plot(x, x**3)
  7. axes.legend(["y = x**2", "y = x**3"], loc=0) # 图例
  8. axes.grid(True)

Matpotlib.pyplot总结

其他图形

  1. n = np.array([0, 1, 2, 3, 4, 5])
  2. fig, axes = plt.subplots(1, 4, figsize=(16, 5))
  3. axes[0].scatter(x, x + 0.25*np.random.randn(len(x)))
  4. axes[0].set_title("scatter")
  5. axes[1].step(n, n**2, lw=2)
  6. axes[1].set_title("step")
  7. axes[2].bar(n, n**2, align="center", width=0.5, alpha=0.5)
  8. axes[2].set_title("bar")
  9. axes[3].fill_between(x, x**2, x**3, color="green", alpha=0.5)
  10. axes[3].set_title("fill_between")

Matpotlib.pyplot总结

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/187510.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code