【问题标题】:Cannot change default colormap in matplotlib无法更改 matplotlib 中的默认颜色图
【发布时间】:2020-01-15 09:19:15
【问题描述】:

我正在尝试在我的 jupyter 笔记本(Python 3)中为 matplotlib 设置 default colormap(不仅仅是特定绘图的颜色)。我找到了命令: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]])

它们都应该生成带有灰色调的图。但是,直方图有颜色,它们对应于默认颜色图的前两种颜色。我没有得到什么?

【问题讨论】:

标签: python matplotlib jupyter-notebook colormap


【解决方案1】:

感谢 Chris 的评论,我发现了问题,我需要更改的不是默认的 colormap,而是默认的 color cycle。这里有描述: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]]) 

【讨论】:

    【解决方案2】:

    如果您使用的是介于 prio 和 2.0 之间的 matplotlib 版本,则需要使用 rcParams(仍在更新版本中工作):

    import matplotlib.pyplot as plt
    
    plt.rcParams['image.cmap'] = 'gray'
    

    【讨论】:

    • 同样的问题。默认颜色图未更改。代码对你有用吗?我正在使用 python 3.0 和 jupyter notebook。
    【解决方案3】:

    您可以在 matplotlib 绘图函数中使用颜色参数。

    import matplotlib.pyplot as plt
    plt.hist([[1,2,3],[4,5,6]], color=['gray','gray'])
    
    

    使用这种方法,您必须为每个数据集指定颜色方案,因此就像我在上面所说的那样指定一组颜色。

    【讨论】:

    • 我需要更改整个笔记本的颜色图。不只是一个情节。
    【解决方案4】:

    由于您有两个要传递的数据集,因此您需要指定两种颜色。

    plt.hist([[1,2,3],[4,5,6]], color=['black','purple'])
    

    【讨论】:

    • 我需要更改整个笔记本的颜色图。不只是一个情节。
    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 2013-03-26
    • 2019-03-29
    • 2014-09-24
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多