Использование библиотеки Matplotlib. Как менять стиль линий на одномерном графике
В предыдущем примере мы рисовали простейшие графики, а теперь научимся изменять стиль линий, которыми они рисуются.
Есть несколько способов описания стиля линий.
Задание стиля в виде строки
Первый и самый простой способ состоит в использовании дополнительного третьего текстового параметра функции plot() из пакета pyplot. Строка стиля может включать в себя три компонента: цвет линии, стиль линии, маркер. В следующих двух таблицах таблице показаны символы, обозначающие стили и маркеры.
Символ стиля | Результат |
- | ![]() |
-- | ![]() |
-. | ![]() |
: | ![]() |
. | ![]() |
, | ![]() |
Символ маркера | Результат |
o | ![]() |
v | ![]() |
^ | ![]() |
< | ![]() |
> | ![]() |
1 | ![]() |
2 | ![]() |
3 | ![]() |
4 | ![]() |
s | ![]() |
p | ![]() |
* | ![]() |
h | ![]() |
H | ![]() |
+ | ![]() |
x | ![]() |
D | ![]() |
d | ![]() |
| | ![]() |
_ | ![]() |
Например, если нужно нарисовать график штриховой линией, то в качестве стиля нужно указать "--". Для отображения графика сплошной линией с маркером в виде кружочков можно использовать стиль "-o". Если же мы хотим сделать цвет графика, например, красным, то можно добавить букву, отвечающую за красный цвет ("r"): "-or".
Следующий пример рисует график функции с использованием стиля "x", когда график представляет собой последовательность крестиков, не соединенных между собой линиями. Поскольку цвет не указан, то используется цвет по умолчанию.

# !!! Импортируем один из пакетов Matplotlib
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
# Шаг между точками
dx = 0.5
# !!! Создадим список координат по оси X на отрезке [xmin; xmax], включая концы
x = np.arange(xmin, xmax + dx, dx)
# Вычислим функцию на заданном интервале
y = np.sin(0.2 * x) * np.cos(0.1 * x)
# !!! Нарисуем одномерный график с использованием стиля
plt.plot(x, y, "x")
# !!! Покажем окно с нарисованным графиком
plt.show()
Давайте скомбинируем стиль линии и метки. Например, если в предыдущем примере заменить вызов функции plot() на следующую:
то мы получим следующий график:

Два стиля маркера указывать нельзя, в этом случае мы получим ошибку.
Кроме обозначения стиля в строке может содержаться символ, описывающий цвет графика, но здесь мы ограничены следующими цветами:
- b - голубой
- g - зеленый
- r - красный
- c - зеленовато-голубой
- m - пурпурный
- y - желтый
- k - черный
- w - белый
Например, следующая строка кода рисует график черной линией, на которой которую наносятся маркеры в виде звездочек

Более гибкий способ задания стиля
Другой способ более гибкий, в том числе в плане задания цветов. Он состоит в том, чтобы в явном виде задавать различные параметры линии. В этом случае один параметр, который отвечал за стиль в прошлых примерах, разобьем на несколько параметров:
- color или c - задает цвет.
- marker - задает вид маркера.
- linestyle - стиль линии.
Кроме того, можно использовать дополнительные параметры. Например:
- markerfacecolor - цвет маркеров.
- markersize - размер маркера.
- linewidth или lw - толщина линии.
Есть еще и другие параметры, но о них мы пока говорить не будем.
Если в первом способе мы были ограничены восемью цветами, то теперь цвета настраиваются более гибко. О том, как можно задавать цвета я уже писал в статье Способы задания цвета в Matplotlib.
Предыдущий пример
можно изменить следующим образом:
Результат будет выглядеть точно также. А, например, следующий код использует параметр markerfacecolor, который позволяет выбрать цвет заливки для символов.
linestyle='-', marker='o', color='k',
markerfacecolor='#ff22aa')
выведет вот такой график:

У функции plot() есть еще много интересных параметров для настройки внешнего вида графиков, но, чтобы было проще ориентироваться в шпаргалке, некоторые из них будем рассматривать в отдельных заметках в будущем.
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.