2015-09-07 3 views
1

Есть ли способ установить размер пространства/толщину между последовательными штрихами при построении графика с использованием linestyle"dashed"? То, что я ищу, чтобы иметь свободу сюжет, используя следующие стили линий:Установите размер пространства matplotlibs linestyle «пунктир»

----- 
- - - - 
-  -  - - 

Включенный ниже короткий кусок кода. Я думал, что это будет вопрос линейных вариантов. Однако, не мог найти его, ни в архиве СО.

import numpy 

x = numpy.linspace(0, 100, 101) 
y = x 

plt.plot(x, y, "r", linestyle = "dashed") 
plt.show() 

ответ

1

У объекта Line2D есть свойство dashes, которое представляет собой последовательность чисел. Первый элемент - это длина (в точках) для первого сегмента, вторая для несегмента, третий - и т. Д. Последовательность циклически перемещается по всей длине линии.

Так (10,5) означает: 10 точек на чернила, 5 очков от чернил, и так далее ...

Здесь вы идете:

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0, 100, 101) 
y = x 

plt.plot(x, y, "r", linestyle = "dashed", dashes=(10,5)) # short gap 
plt.plot(x, y+5, "r", linestyle = "dashed", dashes=(10,20)) # long gap 
plt.plot(x, y+10, "r", linestyle = "dashed", dashes=(5,5,5,5,5,15,15,5,15,5,15,15,5,5,5,5,5,35)) # SOS 
plt.show() 
1

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

import numpy 
import matplotlib.pyplot as plt 

x = numpy.linspace(0, 100, 101) 
y = x 

plt.plot(x, y, "r", linestyle="dashed", dashes=[3, 1, 2, 8]) 
plt.show() 

Это означает, что линия будет «3 черточки на, 1 выкл, 2, и 8 прочь», перед цикл повторяется. Вы можете настроить последовательность, в которой вы проходите, в зависимости от ситуации.

 Смежные вопросы

  • Нет связанных вопросов^_^