andar de bicicleta através de lista de linestyles quando desenhar colunas de uma matriz em matplotlib
-
20-12-2019 - |
Pergunta
Eu sou provavelmente a falta algo óbvio.Eu tô traçando os dados contidos nas colunas de uma matriz em uma única chamada usando
plot(x,A)
onde é x
é uma 1D numpy arange com um comprimento igual ao número de linhas de A.O lineplots isso gera são todas as linhas completas com uma cor de bicicleta pela cor padrão do conjunto de ciclo valem a pena conhecer:rc
Eu sei que posso modificar o ciclo de cor (e pode até mesmo ter uma única cor e linestyle para todas as colunas).No entanto, como eu só posso ciclo os estilos de linha (digamos, meio cheia, tracejada, traço-tracejada, pontilhada) e não na cor (eu quero mantê-lo em preto) e ainda manter o simples SIMPLES pedaço de chamada ?
plot(x,A,['k-','k--','k-.','k:'])
não funciona.
Solução
Origem relacionados em class _process_plot_var_args()
no axes.py
, como você pode ver, apenas o ciclo de cor está definida.Um semelhante linestyle ciclo não é possível.
Portanto, precisamos fazer essas:
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))))]