Использование библиотеки 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.