циклический просмотр списка стилей линий при построении столбцов матрицы в matplotlib

StackOverflow https://stackoverflow.com//questions/23000578

  •  20-12-2019
  •  | 
  •  

Вопрос

Вероятно, я упускаю что-то очевидное.Я строю график данных, содержащихся в столбцах матрицы, за один вызов, используя

plot(x,A)

где x представляет собой 1D-числовой диапазон с длиной, равной количеству строк A.Генерируемые при этом линейные диаграммы представляют собой все полные строки с цветовым циклом по умолчанию, установленным в matplotlib.rc

Я знаю, что могу изменить цветовой цикл (и даже могу иметь один цвет и стиль линии для всех столбцов).Однако, как я могу циклировать только стили линий (скажем, через полный, пунктирный, с тире-точкой, пунктирной точкой), а не цвет (я хочу сохранить его черным) и по-прежнему сохранять простой одиночный вызов графика?

plot(x,A,['k-','k--','k-.','k:']) 

не работает.

Это было полезно?

Решение

Соответствующий источник находится в class _process_plot_var_args() в axes.py, как вы можете видеть, определен только цветовой цикл.Подобный цикл линейного стиля невозможен.

Поэтому нам нужно сделать следующее:

A=range(10)
B=np.random.randn(10,12)
p_list=plt.plot(A, B)
line_cycle=['-','--','-.',':']
_=[l.set_linestyle(st) for l, st in zip(p_list, np.repeat(line_cycle, 1+(len(p_list)/len(line_cycle))))]

enter image description here

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top