我可能错过了一些明显的东西。我正在使用以下命令在一次调用中绘制矩阵列中包含的数据

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

enter image description here

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top