MENU

Data Visualization with Matplotlib: API绘图

• September 21, 2019 • Read: 4180 • 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