【问题标题】:cycling through list of linestyles when plotting columns of a matrix in matplotlib在 matplotlib 中绘制矩阵的列时循环浏览线型列表
【发布时间】:2014-04-11 09:42:36
【问题描述】:

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

在一次调用中绘制矩阵列中包含的数据
plot(x,A)

x 是一个一维 numpy 范围,长度等于 A 的行数。 这生成的线图都是完整的线,颜色循环通过 matplotlib.rc 中设置的默认颜色循环

我知道我可以修改颜色循环(甚至可以为所有列设置单一颜色和线型)。但是,我怎样才能只循环线条样式(比如通过完整、虚线、点划线、点线)而不是颜色(我想保持黑色)并且仍然保持简单的 SINGLE 绘图调用?

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

没用。

【问题讨论】:

标签: matplotlib plot linestyle


【解决方案1】:

相关源码在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))))]

【讨论】:

  • 谢谢!也很高兴教我使用_ assignment。这是在不创建不必要变量的情况下保持生成器表达式的紧凑性的好方法。我不知道那个。
猜你喜欢
  • 1970-01-01
  • 2019-09-08
  • 2019-01-27
  • 2020-10-14
  • 2016-08-08
  • 2015-01-01
  • 2019-09-19
  • 2021-05-02
  • 2020-01-02
相关资源
最近更新 更多