web-dev-qa-db-fra.com

python matplotlib tiret-point-point - comment faire?

J'utilise python et matplotlib pour générer une sortie graphique.
Existe-t-il un moyen simple de générer un style de ligne tiret-point-point?
Je connais '--', '-.', et ':' options. Malheureusement, '-..' n'aboutit pas à une ligne tiret-point-point.
J'ai regardé le set_dashes, mais cela semble contrôler la longueur des tirets et l'espace entre deux tirets adjacents.
Une option peut être de tracer deux lignes l'une sur l'autre; un pointillé avec un grand espace entre les tirets - et un pointillé, avec des points aussi grands que les tirets sont larges et espacés de sorte que deux points se trouvent entre chacun des tirets. Je ne doute pas que cela puisse être fait, j'espère simplement un moyen plus simple.
Ai-je oublié une option?

37
Schorsch

Vous pouvez définir tirets personnalisés :

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] veux dire

  • 8 points sur, (tiret)
  • 4 points de moins,
  • 2 points sur, (point)
  • 4 points de moins,
  • 2 points sur, (point)
  • 4 points de moins.

@Achim a noté que vous pouvez également spécifier le paramètre dashes:

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

produit le même résultat indiqué ci-dessus.

57
unutbu