Первый раз: первое знакомство с Matplotlib
1. Познакомьтесь с Matplotlib
Matplotlib — это библиотека двухмерных графиков Python, способная создавать графику публикационного качества в различных печатных форматах и кросс-платформенную интерактивную среду для построения различных статических, динамических и интерактивных графиков.
Matplotlib является лидером библиотеки визуализации данных Python и стал признанным инструментом визуализации данных в Python., известные графические интерфейсы pandas и seaborn на самом деле являются высокоуровневой инкапсуляцией, основанной на matplotlib.
2. Начальный тест Matplotlib
- Явно создавать фигуры и оси и вызывать для них методы рисования, также известные как режим OO (объектно-ориентированный стиль).
import matplotlib.pyplot as plt
import numpy as np
# 两种绘图接口
# 1、面向对象思想 OO
x = np.linspace(0, 2, 100)
# 通过显示创建 fig 和 axes 对象, 面向对象思想
fig, ax = plt.subplots()
# 通过 ax 对象添加图中的信息
# 添加线条信息
ax.plot(x, x, label='linear')
ax.plot(x, x ** 2, label='quadratic')
ax.plot(x, x ** 3, label='cubic')
# 添加坐标轴信息
ax.set_xlabel('x label')
ax.set_ylabel('y label')
# 设置表头
ax.set_title('Simple Plot')
# 设置标题
ax.legend()
# 显示图像
plt.show()
- Положитесь на pyplot для автоматического создания фигур и осей и рисования
import matplotlib.pyplot as plt
import numpy as np
# 两种绘图接口
# 2、依赖pyplot自动创建figure和axes,并绘图
x = np.linspace(0, 2, 100)
# 通过显示创建 fig 和 axes 对象, 面向对象思想
# 添加线条
plt.plot(x, x)
plt.plot(x, x ** 2)
plt.plot(x, x ** 3)
# 显示图例
# plt.legend()
# 可以在显示图例的时候 通过List的方式 添加每条直线的名称
plt.legend(['linear' 'quadratic', 'cubic'])
# 显示坐标轴名称
plt.xlabel('x label')
plt.ylabel('y label')
# 显示标题
plt.title('Simple plot')
plt.show()
3. Состав рисунка
То, что представлено в окне полного изображения, является рисунком;
- Рисунок: окно изображения, в одной программе можно создать несколько рисунков, и каждый рисунок отображается через окно;
- Оси: концепция подграфов в фигуре, фигура может иметь несколько осей;
- Ось: следующий уровень осей, оси могут иметь несколько осей (несколько измерений, 2 в 2 измерениях), используемых для установки элементов, связанных с координатной осью и сеткой;
- Tick: следующий уровень осей, используемый для установки элементов, связанных с масштабом координат каждой оси;
1. Настройки фигуры
import matplotlib.pyplot as plt
import numpy as np
# 两种绘图接口
x = np.linspace(-2, 2, 100)
# 通过显示创建 fig 和 axes 对象, 面向对象思想
# 添加到不同的 figure
plt.figure()
# 设置 figure 的名称和 大小
# plt.figure(num=3, figsize=(10, 10))
# 添加线条
plt.plot(x, x)
plt.figure()
# 添加线条
plt.plot(x, x ** 2)
# 修改线条的样式
plt.plot(x, x ** 3, color='red', linewidth=2, linestyle='--')
plt.show()
Отображение изображения:
2. Настройки оси координат
import matplotlib.pyplot as plt
import numpy as np
# 两种绘图接口
x = np.linspace(-2, 2, 100)
# 通过显示创建 fig 和 axes 对象, 面向对象思想
# 添加到不同的 figure
plt.figure()
# plt.figure(num=3, figsize=(10, 10))
# 添加线条
plt.plot(x, x)
plt.plot(x, x ** 2, color='red', linewidth=2, linestyle='--')
# 坐标轴设置
# 轴的范围
plt.xlim(-1, 2)
plt.ylim(0, 1)
# 轴的名称
plt.xlabel('I am X')
plt.ylabel('I am Y')
# 轴的刻度 以及 刻度的转化显示 ticks
# x 的刻度从 -2,2 分成 10 份显示
plt.xticks(np.linspace(-2, 2, 10))
# y 的刻度转化
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1],
['a', 'b', 'c', 'd', 'e', 'f'])
# axes 的设置
ax = plt.gca()
# 设置右边界不显示颜色
ax.spines['right'].set_color('none')
# 设置左边界不显示颜色
ax.spines['top'].set_color('none')
# 设置 x 轴为下边界
ax.xaxis.set_ticks_position('bottom')
# 设置 y 轴为左边界
ax.yaxis.set_ticks_position('left')
# y 轴改变位置的方式
ax.spines['left'].set_position(('data', -2))
# x 轴改变位置
ax.spines['bottom'].set_position(('data', 0))
plt.show()
Отображение изображения:
3. Отображение легенды
import matplotlib.pyplot as plt
import numpy as np
# 两种绘图接口
x = np.linspace(-2, 2, 100)
# 通过显示创建 fig 和 axes 对象, 面向对象思想
# 添加到不同的 figure
plt.figure()
# plt.figure(num=3, figsize=(10, 10))
# 添加线条
l1, = plt.plot(x, x)
l2, = plt.plot(x, x ** 2, color='red', linewidth=2, linestyle='--')
# 坐标轴设置
# 轴的范围
plt.xlim(-1, 2)
plt.ylim(0, 1)
# 轴的名称
plt.xlabel('I am X')
plt.ylabel('I am Y')
# 图例的设置
# handles : 线条对象
# lebels :handles 中对应线条的名称
# loc : 图例显示的位置 best : 自动适应 找到数据少的位置显示
plt.legend(handles=[l1, l2, ], labels=['line1', 'line2'], loc='best')
plt.show()
Отображение изображения: