在python / matplotlib中:
例如,当我设置“标记”属性周期时,颜色周期只会产生恒定的(蓝色)颜色。参见下面的示例。
from matplotlib import pyplot as plt
import numpy as np
fig, (ax1,ax2) = plt.subplots(nrows=2)
ax1.set_prop_cycle(marker=['o','s','x','+','*'])
xx = np.arange(10)
for n in xx:
ax1.plot(xx, n*xx)
ax2.plot(xx, n*xx)
plt.show()
如何使颜色循环保持 不变,如在第二轴上一样?
答案 0 :(得分:3)
属性循环程序可以包含不同的属性,例如颜色,标记,线条样式等。通过ax1.set_prop_cycle(marker=[...])
设置属性循环程序时,您将创建一个新的属性循环程序,它仅包含标记属性,而没有颜色。 / p>
要拥有标记和颜色属性,您既需要设置这两个属性,又需要根据要更改的属性来扩展当前属性循环程序。后者将显示在下面。
from matplotlib import pyplot as plt
import numpy as np
fig, (ax1,ax2) = plt.subplots(nrows=2)
cycler = plt.rcParams["axes.prop_cycle"]
cycler += plt.cycler(marker=['o','s','x','+','*'])
ax1.set_prop_cycle(cycler)
colors = plt.rcParams["axes.prop_cycle"].by_key()["color"]
cycler2 = plt.cycler(color=colors)
cycler2 *= plt.cycler(marker=['o','s','x','+','*'])
ax2.set_prop_cycle(cycler2)
xx = np.arange(10)
for n in xx:
ax1.plot(xx, n*xx)
ax2.plot(xx, n*xx)
plt.show()
请注意此处加法和乘法之间的区别。
答案 1 :(得分:2)