您的位置:首页 > 编程语言 > PHP开发

matplotlib 的几种风格 练习

2016-07-01 12:02 525 查看

〇、准备数据

import numpy as np

x = np.linspace(0, 5, 10)
y = x ** 2

一、matlab风格的API

1.单图
from pylab import *

figure()
plot(x, y, 'r')
xlabel('x')
ylabel('y')
title('title')
show()

2.多子图
subplot(1,2,1)
plot(x, y, 'r--')
subplot(1,2,2)
plot(y, x, 'g*-');

二、matplotlib面向对象风格的API:

1.两步走:先创建figure实例、接着创建axes实例

a.单图
fig = plt.figure()

# 不关心位置
axes = fig.add_subplot(1, 1, 1)

# 关心位置
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # left, bottom, width, height (range 0 to 1)

axes.plot(x, y, 'r')

axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('title');

b.多子图
fig = plt.figure()

# 不关心位置
axes1 = fig.add_subplot(2, 1, 1)
axes2 = fig.add_subplot(2, 1, 2)

# 关心位置
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # inset axes

# main figure
axes1.plot(x, y, 'r')
axes1.set_xlabel('x')
axes1.set_ylabel('y')
axes1.set_title('title')

# insert
axes2.plot(y, x, 'g')
axes2.set_xlabel('y')
axes2.set_ylabel('x')
axes2.set_title('insert title')

2.一步走:同时创建figure、axes实例

a.单图(不关心位置)
fig, axes = plt.subplots()

axes.plot(x, y, 'r')
axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('title')

b.多子图(不关心位置)
1)单行,或者单列

fig, axes = plt.subplots(nrows=1, ncols=2)

for ax in axes:
ax.plot(x, y, 'r')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('title')

2)多行多列

fig, axes = plt.subplots(nrows=3, ncols=2, sharex=True)

# 此处不能用 for ax in axes:
for i in range(6):
axes[i//2, i%2].plot(x, y, 'r')
axes[i//2, i%2].set_xlabel('x')
axes[i//2, i%2].set_ylabel('y')
axes[i//2, i%2].set_title('title')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: