无法更改 matplotlib 中的默认颜色图
Cannot change default colormap in matplotlib
我正在尝试为我的 jupyter 笔记本中的 matplotlib 设置 default colormap(不仅仅是特定图的颜色)( Python 3).我找到了命令:plt.set_cmap("gray") 和 mpl.rc('image', cmap='gray'),它们应该将默认颜色映射设置为灰色,但两者命令在执行过程中被忽略,我仍然得到旧的颜色图。
我试过这两个代码:
import matplotlib as mpl
mpl.rc('image', cmap='gray')
plt.hist([[1,2,3],[4,5,6]])
import matplotlib.pyplot as plt
plt.set_cmap("gray")
plt.hist([[1,2,3],[4,5,6]])
它们都应该生成带有灰色调的图。但是,直方图有颜色,对应于默认颜色图的前两种颜色。我没有得到什么?
您可以在 matplotlib 绘图函数中使用颜色参数。
import matplotlib.pyplot as plt
plt.hist([[1,2,3],[4,5,6]], color=['gray','gray'])
使用这种方法,您必须为每个数据集指定配色方案,因此需要一个颜色数组,正如我在上面所说的那样。
如果您使用的 matplotlib 版本介于 prio 和 2.0 之间,您需要使用 rcParams
(仍在较新版本中工作):
import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'
由于您要传递两个数据集,因此您需要指定两种颜色。
plt.hist([[1,2,3],[4,5,6]], color=['black','purple'])
感谢 Chris 的评论,我发现了问题,我需要更改的不是默认的 colormap,而是默认的 color cycle[=19] =].它在这里描述:How to set the default color cycle for all subplots with matplotlib?
import matplotlib as mpl
import matplotlib.pyplot as plt
from cycler import cycler
# Set the default color cycle
colors=plt.cm.gray(np.linspace(0,1,3))
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=colors)
plt.hist([[1,2,3],[4,5,6]])
我正在尝试为我的 jupyter 笔记本中的 matplotlib 设置 default colormap(不仅仅是特定图的颜色)( Python 3).我找到了命令:plt.set_cmap("gray") 和 mpl.rc('image', cmap='gray'),它们应该将默认颜色映射设置为灰色,但两者命令在执行过程中被忽略,我仍然得到旧的颜色图。
我试过这两个代码:
import matplotlib as mpl
mpl.rc('image', cmap='gray')
plt.hist([[1,2,3],[4,5,6]])
import matplotlib.pyplot as plt
plt.set_cmap("gray")
plt.hist([[1,2,3],[4,5,6]])
它们都应该生成带有灰色调的图。但是,直方图有颜色,对应于默认颜色图的前两种颜色。我没有得到什么?
您可以在 matplotlib 绘图函数中使用颜色参数。
import matplotlib.pyplot as plt
plt.hist([[1,2,3],[4,5,6]], color=['gray','gray'])
使用这种方法,您必须为每个数据集指定配色方案,因此需要一个颜色数组,正如我在上面所说的那样。
如果您使用的 matplotlib 版本介于 prio 和 2.0 之间,您需要使用 rcParams
(仍在较新版本中工作):
import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'
由于您要传递两个数据集,因此您需要指定两种颜色。
plt.hist([[1,2,3],[4,5,6]], color=['black','purple'])
感谢 Chris 的评论,我发现了问题,我需要更改的不是默认的 colormap,而是默认的 color cycle[=19] =].它在这里描述:How to set the default color cycle for all subplots with matplotlib?
import matplotlib as mpl
import matplotlib.pyplot as plt
from cycler import cycler
# Set the default color cycle
colors=plt.cm.gray(np.linspace(0,1,3))
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=colors)
plt.hist([[1,2,3],[4,5,6]])