Подтвердить что ты не робот

Python matplotlib dash-dot-dot - как?

Я использую python и matplotlib для генерации графического вывода.
Есть ли простой способ создания штрих-пунктирной линии? Я знаю параметры '--', '-.' и ':'. К сожалению, '-..' не приводит к штрих-пунктирной линии.
Я просмотрел команду set_dashes, но, похоже, она контролирует длину тире и пробел между двумя соседними тире.
Одним из вариантов может быть построение двух строк друг над другом; один разбился с достаточным пространством между черточками - и один пунктир, с точками размером с тире широкими и разнесенными, так что между каждой из черт две точки. Я не сомневаюсь, что это можно сделать, я просто надеюсь на более простой способ.
Упустил ли я вариант?

4b9b3361

Ответ 1

Вы можете определить пользовательские тире:

import matplotlib.pyplot as plt

line, = plt.plot([1,5,2,4], '-')
line.set_dashes([8, 4, 2, 4, 2, 4]) 
plt.show()

enter image description here

[8, 4, 2, 4, 2, 4] означает

  • 8 пунктов, (тире)
  • 4 балла,
  • 2 точки, (точка)
  • 4 балла,
  • 2 точки, (точка)
  • 4 балла.

@Achim отметил, что вы также можете указать параметр dashes:

plt.plot([1,5,2,4], '-', dashes=[8, 4, 2, 4, 2, 4])
plt.show()

дает тот же результат, что и выше.