在matplotlib中打印矩阵列时在线型列表中循环

在matplotlib中打印矩阵列时在线型列表中循环,matplotlib,plot,linestyle,Matplotlib,Plot,Linestyle,我可能遗漏了一些明显的东西。我正在使用 plot(x,A) 其中,isx是长度等于a的行数的1D numpy arange。 此生成的线图都是完整的线,颜色循环通过matplotlib.rc中设置的默认颜色循环 我知道我可以修改颜色循环(甚至可以对所有列使用单一颜色和线型)。然而,我怎样才能只循环线条样式(比如通过完整、虚线、虚线、虚线)而不循环颜色(我想保持黑色),并且仍然保持简单的单点打印调用 plot(x,A,['k-','k--','k-.','k:']) 不起作用。相关源位于ax

我可能遗漏了一些明显的东西。我正在使用

plot(x,A)
其中,is
x
是长度等于a的行数的1D numpy arange。 此生成的线图都是完整的线,颜色循环通过matplotlib.rc中设置的默认颜色循环

我知道我可以修改颜色循环(甚至可以对所有列使用单一颜色和线型)。然而,我怎样才能只循环线条样式(比如通过完整、虚线、虚线、虚线)而不循环颜色(我想保持黑色),并且仍然保持简单的单点打印调用

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

不起作用。

相关源位于
axes.py中的
类\u进程\u绘图\u var\u args()
,如您所见,仅定义了颜色循环。类似的线型循环是不可能的

因此,我们需要做到以下几点:

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

thx!也很高兴教我如何使用作业。这是一种保持生成器表达式紧凑性的好方法,而不会创建不必要的变量。我不知道这一点。密切相关:(通过颜色和线条组合循环)