Перейти к содержимому

Как задать цвет линии в python

  • автор:

Как задать цвет линии в 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

Полное руководство по цветам по умолчанию в 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 по умолчанию

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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *