2013-02-05 14 views
37

Używam Pythona i Matplotlib do generowania grafiki wyjściowej.
Czy istnieje prosty sposób generowania linii kreskowo-kropkowej stylu linii?
Jestem świadomy opcji '--',i ':'. Niestety, '-..' nie daje linii kreska-kropka-kropka.
Spojrzałem na polecenie set_dashes, ale wydaje się, że kontroluję długość kresek i spację między dwoma sąsiadującymi kresek.
Jedną opcją może być narysowanie dwóch linii jeden na drugim; jeden z nich jest przerywany z dużą przestrzenią między kreskami - i kropkowany, z kropkami tak szerokimi, jak kreski są szerokie i rozmieszczone w taki sposób, że pomiędzy każdym z kresek znajdują się dwie kropki. Nie wątpię, że można to zrobić, po prostu mam nadzieję na łatwiejszy sposób.
Czy przeoczyłem opcję?python matplotlib kreska-kropka-kropka - jak?

Odpowiedz

55

Można zdefiniować custom dashes:

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] oznacza

  • 8 punktów na (myślnik)
  • 4 punkty off,
  • 2 punkty na, (kropka)
  • 4 punkty,
  • 2 punkty, (kropka)
  • 4 punkty.

@Achim zauważyć można również określić parametr dashes:

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

produkuje ten sam rezultat przedstawiony powyżej.

Powiązane problemy