Matplotlib

Matplotlib的简单使用, 官方example🔗多查多看

写在前面

本贴主要从基础概念上进行讲解,具体的实例展示将在新帖展开。

  • 画板figure
  • 画纸上最上方是标题title,用来给图形起名字
  • 坐标轴Axis,横轴叫x坐标轴label,纵轴叫y坐标轴ylabel
  • 图例Legend 代表图形里的内容
  • 网格Grid,图形中的虚线,True显示网格

两个图帮助理解:

F2

F1

接下来从一个简单的折线图开始增加/修改元素

1
2
3
4
5
6
7
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1
plt.plot(x, y)
plt.show()

F3

画布操作

设置画布尺寸

1
2
3
4
5
6
7
8
import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(8, 5)) # 长宽比
x = np.arange(0, 50, 10)
y = 2*x + 1
plt.plot(x, y)
plt.show()

F6

增加背景表格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

plt.figure(figsize=(8, 5))

'''
生成网格
color: 网格线条颜色
linestyle: 线条风格
linewidth
'''
plt.grid(True, color='g', linestyle='--', linewidth='1')

plt.plot(x, y)
plt.show()

P10

坐标轴操作

设置x & y轴文本, 标题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

#x轴文本
plt.xlabel('X axis')
#y轴文本
plt.ylabel('Y Axis')
#标题
plt.title('Demo Title')

plt.plot(x, y)
plt.show()

F5

更改X & Y轴坐标值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

plt.figure(figsize=(8, 5))

plt.xlabel('X axis')
plt.ylabel('Y Axis')
plt.title('Demo Title')

# 生成的新坐标
y_ticks = np.arange(1, 6, 1)
x_label = ['one', 'two', 'three', 'four', 'five']

# 使用新坐标替换旧坐标
plt.xticks(x, x_label)
plt.yticks(y, y_ticks)

plt.plot(x, y)
plt.show()

F7

更改X & Y轴坐标范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

plt.figure(figsize=(8, 5))

plt.xlabel('X axis')
plt.ylabel('Y Axis')
plt.title('Demo Title')

y_ticks = np.arange(1, 6, 1)
x_label = ['one', 'two', 'three', 'four', 'five']

plt.xticks(x, x_label)
plt.yticks(y, y_ticks)

# 限制坐标范围
plt.xlim((-1, 80))
plt.ylim((-1, 160))

plt.plot(x, y)
plt.show()

F8

更改字体大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

plt.figure(figsize=(8, 5))

text_size = 20
plt.xlabel('X axis', fontsize=text_size)
plt.ylabel('Y Axis', fontsize=text_size)
plt.title('Demo Title', fontsize=text_size)

y_ticks = np.arange(1, 6, 1)
x_label = ['one', 'two', 'three', 'four', 'five']

plt.xticks(x, x_label, fontsize=text_size)
plt.yticks(y, y_ticks, fontsize=text_size)

plt.plot(x, y)
plt.show()

P9

线条操作

修改线条格式

1
2
3
4
5
6
'''
color:线条颜色,值r表示红色(red)
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值dashed表示用虚线连接各点
'''
plt.plot(x, y, color='r', marker='o', linestyle='dashed')

F4

legend

添加基本legend

y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 10)
y = 2*x + 1

plt.figure(figsize=(8, 5))

lw = 2
plt.plot(x, y, label='line1', color='r', marker='o', linestyle='dashed', linewidth=lw)
plt.plot(x, y+10, label='line2', color='black', marker='*', linestyle='--', linewidth=lw)
plt.plot(x, y+20, label='line3', color='b', marker='h', linestyle='-', linewidth=lw)

plt.legend(loc='best')

plt.show()

P11

作者

Shuyu Zhang

发布于

2020-12-27

更新于

2022-10-16

许可协议

评论