MENU

Data Visualization with Matplotlib: API绘图

• September 21, 2019 • Read: 5496 • Knowledge,Data Visualization

以 API 封装的 pyplot 绘图命令

对于之前学过 MATLAB 的人来说,matplotlib 的 pylab 方式,其操作基本上与 MATLAB 一致。Python 是一个完全的面向对象的语言,一切都是对象。对于 Matplotlib 的绘图来看,最为上手的就是利用 API 的形式,采用函数式绘图,容易掌握,虽然很难做到创造任何的图。

这里主要以例子为主,加强记忆即可。

单一的图

  • import numpy as np
  • import matplotlib.pyplot as plt
  • # 绘制一个正弦函数、余弦函数的图像
  • # 产生x向量
  • x = np.linspace(0, 2 * np.pi, 50) # 50 elements
  • y1 = np.sin(x)
  • y2 = np.cos(x)
  • # visualization
  • plt.figure() # 产生一个figure对象,可以设置图的大小
  • plt.plot(x, y1, marker='o',
  • color='tab:red', markeredgecolor='k',
  • linestyle='-', linewidth=2)
  • plt.plot(x, y2, marker='>', markeredgecolor='tab:blue',
  • color='tab:green',linestyle='-.',
  • linewidth=2)
  • label=['$\sin(x)$', '$\cos(x)$']
  • plt.xlabel('x')
  • plt.ylabel('y')
  • plt.title('function image')
  • plt.legend(label, loc='best')
  • plt.grid(True)
  • plt.savefig('function image.png', dpi=600)
  • plt.show()

fig1

matplotlib 中还支持主题的调用,上图未进行主题风格的设置,默认为 default,还有 ggplot 和 seaborn 等,效果如下:

fig-ggplot

fig1-seaborn

多子图绘图

在一个图中绘制多个子图,主要利用 subplot () 命令

  • x = np.linspace(0, 2 * np.pi, 50) # 50 elements
  • y1 = np.sin(x)
  • y2 = np.cos(x)
  • plt.style.use('ggplot')
  • plt.subplot(2,2,1)
  • plt.plot(x, y1, label='$\sin(x)$')
  • plt.title('$\sin(x)$')
  • plt.xlabel('x')
  • plt.ylabel('y')
  • plt.legend(loc='best')
  • plt.subplot(2,2,2)
  • plt.plot(x, y2, label='$\cos(x)$', color='tab:olive')
  • plt.title('$\cos(x)$')
  • plt.xlabel('x')
  • plt.ylabel('y')
  • plt.legend(loc='best')
  • plt.subplot(223)
  • plt.scatter(x, y1, marker='o',label='$\sin(x)$', color='tab:cyan')
  • plt.title('$\sin(x)$ points')
  • plt.xlabel('x')
  • plt.ylabel('$\sin(x)$')
  • plt.legend(loc='best')
  • plt.subplot(224)
  • plt.scatter(x, y2, marker='o',label='$\cos(x)$', color='tab:green')
  • plt.title('$\cos(x)$ points')
  • plt.xlabel('x')
  • plt.ylabel('$\cos(x)$')
  • plt.legend(loc='best')
  • plt.savefig('mult.png', dpi=600)
  • plt.show()

figmult

如果你觉得这些对你还有些收获!当然可以打赏我。

请点击右下方 Tip 进行打赏!

Last Modified: October 6, 2019
Archives Tip
QR Code for this page
Tipping QR Code