Python 如何更改matplotlib中多个绘图的默认颜色?
我想对Jupyter笔记本中的每个绘图使用相同的颜色映射/颜色循环/调色板 使用seaborn软件包,我可以使用:Python 如何更改matplotlib中多个绘图的默认颜色?,python,matplotlib,plot,Python,Matplotlib,Plot,我想对Jupyter笔记本中的每个绘图使用相同的颜色映射/颜色循环/调色板 使用seaborn软件包,我可以使用: seaborn.set_palette('Set1') 有没有办法只使用matplotlib而不使用seaborn来实现同样的功能 我知道如何分别为每个绘图定义颜色贴图,并且我知道预定义的样式(例如,ggplot),但我找不到一种方法一次只为所有绘图定义颜色贴图 我的目的是为我的学生简化代码,因此在set\u palete()后面使用复杂的代码不是一个选项 编辑:正如公认的答
seaborn.set_palette('Set1')
有没有办法只使用matplotlib而不使用seaborn来实现同样的功能
我知道如何分别为每个绘图定义颜色贴图,并且我知道预定义的样式(例如,ggplot),但我找不到一种方法一次只为所有绘图定义颜色贴图
我的目的是为我的学生简化代码,因此在set\u palete()
后面使用复杂的代码不是一个选项
编辑:正如公认的答案所示,我把颜色映射与颜色循环混淆了 matplotlib中的默认颜色映射为“viridis”。这是在
“image.cmap”
中设置的
默认颜色循环可通过“axes.prop_cycle”
rcParam更改
import matplotlib.pyplot as plt
# to change default colormap
plt.rcParams["image.cmap"] = "Set1"
# to change default color cycle
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=plt.cm.Set1.colors)
设置调色板的源代码。由于helper函数,在没有seaborn的情况下,需要大量代码来重现set\u调色板
的确切行为。但是,如果您只需要该行为的一个子集,您可以在源代码中找到所需的内容。或者解释您正在寻找的行为子集(特定用例、python版本和matplotlib版本),也许我们可以帮助您。是的,我尝试了这一点,但我的目的是让代码对我的学生更简单,并且,在您设置时,它需要许多帮助函数。我会澄清我的问题。谢谢,但这只适用于图像(使用imshow()
创建的绘图),不适用于常规绘图(散点图、条形图等)。如果我错了,请告诉我。这适用于任何使用彩色贴图的绘图。然后,它将使用指定为rcParam的颜色贴图,例如散点图。Matplotlib条形图不使用任何颜色映射,因此您希望发生什么?我正在寻找与set\u调色板()
相同的行为。如果我用类似于plt.rcParams[“image.cmap”]=“Accent”
的东西重新定义colormap,当我调用plt.scatter(x[:,0],x[:,1])
(不带颜色参数)时,它将使用colormap上的第一种颜色。但也许我错误地期望一个颜色贴图作为调色板。啊,你不想在这里更改任何颜色贴图。您要设置默认的颜色循环。我相信这两个复制品的组合能满足你的需求。但我也相应地编辑了答案。如果没有,你可以问得更具体一些。是的,这正是我想要的!但它实际上是一个复制品。那么我应该删除吗?我不想浪费你的努力。