pyplot.plot()不尊重关键字参数

时间:2016-11-07 17:16:29

标签: matplotlib

在我的序言中,我有

import numpy as np
import numpy as np
import matplotlib.pyplot as plt
from cycler import cycler
plt.style.use([
    'seaborn-paper', {'axes.prop_cycle': (
        cycler('color', ['k'])*
        cycler('lw', [2,1])*
        cycler('dashes', [[],[13,2],[8,3,1,3]]))}])

当我稍后使用plt.plot()使用关键字参数(或它们的等价物)时, 例如,

a = np.array((0.,5.))
plt.plot(a,a, linewidth=6)
plt.plot(-a,a, '-')

我期待第一线非常宽,第二线连续第二,但这就是我得到的

the wrong line types!

如果我想

,我该怎么办?
  1. 对于线条样式和
  2. 有一个明智的(对我来说)默认周期
  3. 在这里和那里打破规则?
  4. TIA

1 个答案:

答案 0 :(得分:1)

线宽别名未正确消除锯齿的问题(因此linewidthlw都用于设置宽度和冲突)。样式字符串vs linestyle vs dashes也会发生类似的情况。

import numpy as np
import numpy as np
import matplotlib.pyplot as plt
from cycler import cycler
plt.style.use([
    'seaborn-paper', {'axes.prop_cycle': (
        cycler('color', ['k'])*
        cycler('linewidth', [2,1])*
        cycler('dashes', [[],[13,2],[8,3,1,3]]))}])

a = np.array((0.,5.))
plt.plot(a,a, linewidth=6)
plt.plot(-a,a, dashes=[])

应该有用。

第一个问题(lw别名)在2.x中得到修复,但即使使用破折号,循环也会被破坏:(

https://github.com/matplotlib/matplotlib/issues/7426