码
import matplotlib
matplotlib.rc("lines", marker="x", linewidth=5, color="r")
import pylab
pylab.plot([1,2,3])
pylab.show()
描述
答案 0 :(得分:2)
不应该如何使用matplotlib.rc
。它的全局配置更多。我也不认为color
单独是一个有效的参数。
对于单个情节,请执行以下操作:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], linestyle='-', color='r', linewidth=2)
fig.savefig('plot_with_red_line.png', dpi=100)
另外,不要使用pylab界面。使用pyplot。
答案 1 :(得分:0)
默认情况下,颜色由Cycler对象指定。在pyplot.plot()
(或axes.Axes.plot()
)命令中手动指定颜色(请参见Paul's answer)将更改单个图的颜色 。如果要更改所有折线图的默认颜色 ,请继续阅读。
我将从一个the matplotlib documentation派生的例子开始:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
plt.ion() # Interactive mode on.
data = np.random.randn(50)
# Want to change default line color to cyan.
mpl.rc('lines', linewidth=4, color='c')
# Plot; linewidth changes, color doesn't.
plt.plot(data)
颜色没有根据需要变为青色。
现在,我在示例matplotlibrc文件的bottom of the page中注意到以下行:
#lines.color : C0 ## has no affect on plot(); see axes.prop_cycle
事实证明,为了在默认的matplotlib图中循环显示颜色,将循环器分配给axes.Axes
对象。我们需要provide a different cycler和我们想要的color
属性。继续上一个示例...
plt.close()
from cycler import cycler
custom_cycler = (cycler(color=['c', 'm', 'y', 'k']) + cycler(linewidth=[1, 2, 3, 4]))
mpl.rc('axes', prop_cycle=custom_cycler)
for i in range(5):
plt.plot(data + i)
哇!我们根据需要更改了默认颜色循环,并在此过程中了解了Cyclers,它也可以循环显示其他属性,例如linewidth
。当然,如果您希望所有图都是一种颜色,则只需为Cycler提供一个包含单个值的列表即可。
注意::还可以通过axes.Axes.set_prop_cycle()
来更改axes.Axes
实例的属性循环器。
注意2: As Paul said,请不要使用pylab;使用pyplot。 pylab is deprecated。