在 matplotlib 中绘制矩阵的列时循环遍历线型列表
-
20-12-2019 - |
题
我可能错过了一些明显的东西。我正在使用以下命令在一次调用中绘制矩阵列中包含的数据
plot(x,A)
哪里 x
是一个 1D numpy arange,其长度等于 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))))]
不隶属于 StackOverflow