Как изменить стиль линии в pyplot?

Pyplot — это модуль Matplotlib, который предоставляет интерфейс для построения графиков, аналогичный MATLAB. Он позволяет создавать простые графики, гистограммы, диаграммы рассеяния, столбчатые диаграммы, планки погрешностей и т. д. всего несколькими строками кода.

Одной из распространенных задач при создании графиков является настройка стиля линий, включая изменение ширины линии, типа линии, шаблонов штрихов и цветов. Pyplot предоставляет несколько различных способов настройки стиля линии.

Использование строк формата

Самый простой способ изменить стиль линии — использовать строку формата. Это строка, описывающая используемый стиль линии. Например:

'-'' сплошная линия '--' пунктирная линия '-.' штрихпунктирная линия ':' пунктирная линия 

Вы можете передать строку формата параметру 'linestyle' при построении графика:

import matplotlib.pyplot as plt plt.plot([1, 2, 3], linestyle='--') 

Это позволит построить пунктирную линию. Вы также можете сократить «linestyle» до «ls».

Некоторые распространенные строки формата, которые вы можете использовать:

Строка формата Описание
'-' Сплошная линия
'–' Пунктирная линия
'-.' Штрихпунктирная линия
':' Пунктирная линия

Вы можете комбинировать стили линий, объединяя строки формата. Например, '-.' даст штрихпунктирную линию.

Использование объектов стиля линии

Для большей гибкости в управлении стилем линии можно использовать объекты стиля линии. Они позволяют точно указать шаблон включения/выключения для штрихов.

Чтобы создать Linestyle, импортируйте matplotlib.lines и создайте экземпляр объекта Linestyle:

from matplotlib import lines solid = lines.Line2D.solid dashed = lines.Line2D.dashed 

Затем передайте этот объект параметру 'linestyle':

plt.plot([1,2,3], linestyle=dashed) 

Некоторые распространенные доступные объекты Linestyle:

Объект Описание
solid Сплошная линия (по умолчанию)
dashed Пунктирная line
dashdot Штрихпунктирная линия
точечная Пунктирная линия

Вы также можете определить пользовательские шаблоны штрихов, указав последовательность длин включения/выключения в точках:

import matplotlib.lines as mlines custom = mlines.Line2D([10,5,2,5], linewidth=2) 

Это создаст стиль линии с 10-точечным штрихом, 5-точечным зазором, 2-точечным штрихом, 5-точечным зазором. Передайте этот объект в 'linestyle', чтобы использовать его.

Изменение ширины линии

Помимо стиля линии, вы также можете изменить ширину линии. Это делается с помощью параметра 'linewidth':

plt.plot([1,2,3], linewidth=5) 

Ширина указывается в точках. Ширина линии по умолчанию равна 1,0.

Цвета линий графика

Вы можете изменить цвет линий с помощью параметра 'color':

plt.plot([1,2,3], color='red') 

Это позволит построить красную линию. Здесь вы можете использовать любую цветовую спецификацию matplotlib, включая кортежи RGB, шестнадцатеричные коды или названия цветов HTML.

Некоторые примеры:

# Красный plt.plot([1,2,3], color='red') # Шестнадцатеричный код plt.plot([1,2,3], color='#FF0000') # Кортеж RGB plt.plot([1,2,3], color=(1.0, 0, 0)) # Голубой plt.plot([1,2,3], color='cyan') 

Сокращенный синтаксис

Вы также можете указать стиль линии, ширину и цвет, используя сокращенный синтаксис, объединив их вместе точками:

fmt = '[linestyle].[linewidth].[color]' plt.plot([1,2,3], 'r--') 

Это устанавливает красную пунктирную линию с шириной по умолчанию. Стиль, ширина и цвет являются необязательными, поэтому вы можете смешивать и сопоставлять элементы.

Настройка стилей линий по умолчанию

Если вы хотите установить стили линий для всех графиков, вы можете настроить rcParams matplotlib. Например:

plt.rcParams['lines.linestyle'] = '--' plt.rcParams['lines.linewidth'] = 2 plt.rcParams['lines.color'] = 'blue' 

Это установит пунктирные синие линии с шириной 2 в качестве линий по умолчанию для всех графиков.

Стили линий для каждого набора данных

При построении нескольких наборов данных на одних и тех же осях вы можете указать стили линий для каждого набора данных, чтобы различать их. Сделайте это, передав аргументы стиля линии каждому вызову plt.plot():

import matplotlib.pyplot as plt xs = [1, 2, 3, 4] ys1 = [1, 2, 3, 4] ys2 = [2, 4, 6, 8] plt.plot(xs, ys1, linestyle='--', color='b') plt.plot(xs, ys2, linestyle=':', color='r') plt.show() 

Это отобразит ys1 как синюю пунктирную линию, а ys2 как красную пунктирную линию.

Стили линий в Matplotlib

Подводя итог, чтобы изменить стили линий в графиках matplotlib, вы можете использовать:

  • Форматировать строки следующим образом: '-', '–', '-.', ':'
  • Объекты стиля линии, такие как lines.Line2D.solid
  • Параметр linewidth для установки ширины
  • Параметр color для установки цвета
  • Сокращенный синтаксис fmt для стиля, ширины и цвета
  • Настройки rcParams для стилей по умолчанию
  • Параметры для каждого набора данных в plt.plot() для многолинейных графиков

Это обеспечивает большую гибкость для настройки линий графика в соответствии с вашими потребностями. Правильное использование стилей линий может сделать ваши графики более понятными и визуально более эффективными.

Примеры графиков с различными стилями линий

Вот несколько примеров графиков с использованием различных вариантов стилей линий:

Сплошные и пунктирные линии

import matplotlib.pyplot as plt import matplotlib.lines as mlines plt.plot([1, 2, 3], linestyle='-') plt.plot([1, 2, 3], linestyle='--') plt.show() 

Этот метод рисует сплошную и пунктирную линию с использованием строк форматирования.

Пользовательский шаблон штрихов

custom = mlines.Line2D([10,5,2,5], linewidth=2) plt.plot([1,2,3], linestyle=custom) plt.show() 

Здесь пользовательский объект стиля линии определяет шаблон включения/выключения пунктира.

Изменяющаяся ширина линии

импортировать matplotlib.pyplot как plt plt.plot([1,2,3], linewidth=1) plt.plot([1,2,3], linewidth=5) plt.show() 

Это устанавливает различную ширину линии для каждой линии.

Разные цвета

импортировать matplotlib.pyplot как plt plt.plot([1,2,3], color='red') plt.plot([1,2,3], color='#00FF00') plt.show() 

Здесь используются красный и зеленый цвета.

Сокращенный синтаксис

import matplotlib.pyplot as plt plt.plot([1,2,3], 'r-.') plt.plot([1,2,3], 'b--') plt.show() 

Сокращенный синтаксис кратко определяет как стиль, так и цвет.

График по нескольким наборам данных

import matplotlib.pyplot as plt xs = [1, 2, 3, 4] ys1 = [1, 2, 3, 4] ys2 = [2, 4, 6, 8] plt.plot(xs, ys1, 'r--') plt.plot(xs, ys2, 'b:') plt.show() 

Здесь каждая линия имеет различные стили, поскольку они представляют разные наборы данных.

Заключение

В matplotlib линии очень легко настраиваются с помощью строк формата, объектов стиля линии, ширины линии, цвета, сокращенного синтаксиса и параметров для каждого набора данных. Это позволяет полностью контролировать визуальное представление линий на ваших графиках. Правильное использование стилей линий является ключом к созданию графиков качества публикации, которые эффективно демонстрируют ваши данные.