Как задать цвет линии в python
Шаг 18.
Язык Python. Визуализация данных. Библиотека Matplotlib. Основы работы с модулем pyplot. Работа с линейным графиком. Цвет линии
На этом шаге мы рассмотрим способы задания цвета .
RGB или RGBA : кортеж значений с плавающей точкой в диапазоне [0, 1] (пример: (0.1, 0.2, 0.3);
plt.plot(x, y, color='xkcd:light violet')
plt.plot(x, y, color='tab:red')
Если цвет задаётся с помощью символа из набора , то он может быть совмещён со стилем линии в рамках параметра fmt функции plot() . Например: штриховая красная линия будет задаваться так: ‘—r’ , а штрихпунктирная зелёная так ‘-.g’ :
import matplotlib.pyplot as plt x = [1, 5, 10, 15, 20] y = [1, 7, 3, 5, 11] plt.plot(x, y, '-.g') plt.show()
Архив с файлом можно взять здесь.
Рис.1. График, представленный в виде штрихпунктирной зеленой линии
На следующем шаге мы рассмотрим задание типа графика .
Полное руководство по цветам по умолчанию в Matplotlib

В Python у Matplotlib есть список цветов по умолчанию, которые он использует для элементов на графике в зависимости от общего количества элементов.
Например, мы можем использовать следующий код для построения линий, которые показывают первые 10 цветов по умолчанию в Matplotlib:
import numpy as np import matplotlib.pyplot as plt #define plot fig = plt.figure() ax = fig.add_subplot (111) #define range j = np.arange (11) #add lines to plot for i in range(10): line, = ax.plot(j,i\*(j+1)) ax.plot(j,i\*(j+1), color = line. get_color ()) #display plot plt.show()

Matplotlib выбирает первые 10 цветов по умолчанию для линий на графике.
Мы можем использовать следующий код для просмотра фактических шестнадцатеричных цветовых кодов каждого из десяти цветов:
import matplotlib.pyplot as plt #display hex color codes print(plt.rcParams ['axes.prop_cycle']. by_key ()['color']) ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']
На выходе отображается шестнадцатеричный код цвета для каждого из десяти цветов по умолчанию.
Например, первый шестнадцатеричный код цвета — #1f77b4.Это соответствует первой строке графика синего цвета.
Второй шестнадцатеричный код цвета — #ff7f0e.Это соответствует второй строке на графике, которая выделена оранжевым цветом.
Третий шестнадцатеричный код цвета — #2ca02c.Это соответствует третьей линии на графике, которая выделена зеленым цветом.
Это означает, что если вы создаете график в Matplotlib с одной линией, то цвет линии будет #1f77b4 , если вы не укажете иное.
Или, если вы создаете график в Matplotlib с двумя линиями, цвет первой линии будет #1f77b4, а цвет второй линии будет #ff7f0e , если вы не укажете иначе.
Обратитесь к документации Matplotlib для полного объяснения цветов по умолчанию.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Matplotlib:
Команды для рисования Черепашкой
Перемещать черепашку мы уже умеем. Теперь научимся работать с пером. Перо – это инструмент с помощью которого Черепашка рисует линии.
Команда turtle.penup() подымает перо. После чего, Черепашка не оставляет на холсте след. Чтобы начать снова рисовать необходимо опустить перо командой turtle.pendown(). По умолчанию у Черепашки перо всегда опущено. Команды penup() и pendown() применяются без аргументов в скобках.
#Подымаем перо turtle.penup()
#Опускаем перо turtle.pendown()
Сокращенные версии команды: turtle.up() или turtle.pu() чтобы поднять перо и turtle.down() или turtle.pd() чтобы опустить.
Еще одно свойство пера – это его толщина. То, насколько толстым будет след оставляемый Черепашкой. Устанавливается он командой turtle.pensize() или turtle.width(), где в скобках указывается число, толщина в пикселях линии, которую рисует Черепашка.
#Рисуем линию толщиной в пять пикселей turtle.pensize(5)
По умолчанию Черепашка рисует линию черным цветом. Но с помощью команды turtle.pencolor() мы можем его изменить.
В качестве аргументов мы можем записать название цвета, на английском языке, которым Черепашка должна будет рисовать линии. Например red, green или blue. Передаваемые названия должны быть обязательно взяты в кавычки или апострофы.
#Рисуем линии красным цветом turtle.pencolor('red')
Цвет также можно задать используя палитру RGB, записав три числа от 0 до 255 через запятую.
#Рисуем линии зеленым цветом используя RGB палитру turtle.pencolor(0,255,0)
Либо задав цвет в виде шестнадцатеричного числа, так же взяв его в кавычки или апострофы.
#Рисуем линии синим цветом используя шестнадцатеричную запись turtle.pencolor('#0000ff')
Черепашка может закрашивать замкнутые области. Для начала необходимо установить цвет заливки используя команду turtle.fillcolor(). В качестве аргументов указываем цвет, как и в цветет линии.
Для того, чтобы указать начало заливки задаем команду turtle.begin_fill(), а чтобы закончить turtle.end_fill().
#Указываем цвет заливки turtle.fillcolor('#0000ff') turtle.begin_fill() #Тут записываем команды движения Черепашки turtle.end_fill()
Для заливки необязательно Черепашкой рисовать замкнутую область. В этом случае между местом откуда мы начали заливку и где ее закончили будет проведена граница, по которой и пройдет заливка фигуры.
Менять цвет линии и заливки можно так-же командой turtle.color(). Этой команду можно передать как один аргумент, так и два, записав их через запятую. Первый аргумент устанавливает цвет линии, а второй цвет заливки.
#Первый аргумент изменяет цвет линии, второй цвет заливки turtle.color('#0000ff', 'red')
Использование библиотеки 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() на следующую:
plt. plot ( x , y , «:x» )
то мы получим следующий график:

Два стиля маркера указывать нельзя, в этом случае мы получим ошибку.
Кроме обозначения стиля в строке может содержаться символ, описывающий цвет графика, но здесь мы ограничены следующими цветами:
Например, следующая строка кода рисует график черной линией, на которой которую наносятся маркеры в виде звездочек
plt. plot ( x , y , «-*k» )

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

























