我正在一个绘图上绘制多条线,我希望它们能够遍历色图的光谱,而不仅仅是相同的6或7种颜色.代码类似于:
for i in range(20):
for k in range(100):
y[k] = i*x[i]
plt.plot(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
使用colormap"jet"和我从seaborn导入的另一个,我得到相同的7种颜色以相同的顺序重复.我希望能够绘制多达60种不同的线条,所有线条都有不同的颜色.
我正在尝试使用较新的cycles参数:但它似乎不接受ListedColorMap. 那么如何提取并使用a 中包含的颜色列表ListedColorMap(由对象表示) ?colormap
现在:
mpl.rcParams['axes.prop_cycle'] = plt.cycler('color',cmap)
Run Code Online (Sandbox Code Playgroud)
这失败了:
TypeError: 'ListedColormap' object is not iterable
以下确实有效 - 但随后我们会丢失原始颜色图的值,例如linspace:
mpl.rcParams['axes.prop_cycle'] = plt.cycler('color',['r','g','b'])
Run Code Online (Sandbox Code Playgroud)
这看起来应该非常简单:只是如何将 转换为colormap列表..但是如何做到呢?
更新尊敬的@unutbu 提供了下面的答案( ListedColorMap.colors),这里是结果。
我想使用反向 Spectral colormap,
https://matplotlib.org/examples/color/colormaps_reference.html
对于线图。
这适用于十六进制图:
color_map = plt.cm.Spectral_r
image = plt.hexbin(x,y,cmap=color_map)
Run Code Online (Sandbox Code Playgroud)
但是当我这样做的时候
ax1.plot(x,y, cmp=color_map)
Run Code Online (Sandbox Code Playgroud)
这给了我::
AttributeError: 未知属性 cmap
请注意,我只想设置colormap并让matplotliob其余的工作;即我不想color=' argument在 .plot 命令中有一个。
我想将图中的颜色分配给由整数表示的标称数据。我想从定性颜色图中绘制颜色,特别是我想从 Set3 中绘制五种颜色:
问题是我想使用前五种颜色,但颜色映射器对我的数据进行标准化,五个分类值的范围从 1 到 5,并从 12 种颜色中选择第 1、4、7、10 和 12 种颜色。颜色设置。
基本上,matplotlib.cm.get_cmap允许您指定多种颜色,但在范围内进行标准化:
from matplotlib import cm
set3_5 = cm.get_cmap("Set3", lut = 5)
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西matplotlib.colors.ListedColormap,它有一个参数N,可以在N 个项目之后截断颜色列表而不进行标准化。但我不知道如何将内置颜色图传递给.ListedColormap
我想使用matplotlib循环仪和可调色板的颜色.
cycler看起来像这样:
from cycler import cycler
plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y']) +
cycler('linestyle', ['-', '--', ':', '-.'])))
Run Code Online (Sandbox Code Playgroud)
如何使用从palettable获得的颜色映射替换上面的颜色列表?
import palettable
cmap = palettable.colorbrewer.diverging.PRGn_11.mpl_colormap
Run Code Online (Sandbox Code Playgroud)
对于答案,使用palettable并不重要,但了解如何使用colormap非常重要.