Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改matplotlib中多个绘图的默认颜色?_Python_Matplotlib_Plot - Fatal编程技术网

Python 如何更改matplotlib中多个绘图的默认颜色?

Python 如何更改matplotlib中多个绘图的默认颜色?,python,matplotlib,plot,Python,Matplotlib,Plot,我想对Jupyter笔记本中的每个绘图使用相同的颜色映射/颜色循环/调色板 使用seaborn软件包,我可以使用: seaborn.set_palette('Set1') 有没有办法只使用matplotlib而不使用seaborn来实现同样的功能 我知道如何分别为每个绘图定义颜色贴图,并且我知道预定义的样式(例如,ggplot),但我找不到一种方法一次只为所有绘图定义颜色贴图 我的目的是为我的学生简化代码,因此在set\u palete()后面使用复杂的代码不是一个选项 编辑:正如公认的答

我想对Jupyter笔记本中的每个绘图使用相同的颜色映射/颜色循环/调色板

使用seaborn软件包,我可以使用:

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上的第一种颜色。但也许我错误地期望一个颜色贴图作为调色板。啊,你不想在这里更改任何颜色贴图。您要设置默认的颜色循环。我相信这两个复制品的组合能满足你的需求。但我也相应地编辑了答案。如果没有,你可以问得更具体一些。是的,这正是我想要的!但它实际上是一个复制品。那么我应该删除吗?我不想浪费你的努力。