使用 matplotlib 颜色图进行颜色循环

2023-12-14

如果我通过以下方式创建颜色:

import numpy as np
from matplotlib import pyplot as plt

n = 6
color = plt.cm.coolwarm(np.linspace(0.1,0.9,n))
color

颜色是一个 numpy 数组:

array([[ 0.34832334,  0.46571115,  0.88834616,  1.        ],
       [ 0.56518158,  0.69943844,  0.99663507,  1.        ],
       [ 0.77737753,  0.84092121,  0.9461493 ,  1.        ],
       [ 0.93577377,  0.8122367 ,  0.74715647,  1.        ],
       [ 0.96049006,  0.61627642,  0.4954666 ,  1.        ],
       [ 0.83936494,  0.32185622,  0.26492398,  1.        ]])

但是,如果我将 RGB 值(没有 alpha 值 1)作为元组插入到我的.mplstyle file (map(tuple,color[:,0:-1])),我收到类似于此的错误:

in file "/home/moritz/.config/matplotlib/stylelib/ggplot.mplstyle"
    Key axes.color_cycle: [(0.34832334141176474 does not look like a color arg
  (val, error_details, msg))

有什么想法吗?


“连续”色彩图

如果你想循环浏览N来自“连续”颜色图的颜色,例如默认的 viridis 地图,@Gerges 的解决方案效果很好。

import matplotlib.pyplot as plt

N = 6
plt.rcParams["axes.prop_cycle"] = plt.cycler("color", plt.cm.viridis(np.linspace(0,1,N)))

fig, ax = plt.subplots()
for i in range(N):
    ax.plot([0,1], [i, 2*i])

plt.show()

“离散”色彩图

Matplotlib 提供了一些“离散”的颜色图,因为它们为定性视觉效果保留了一些少量的不同颜色,例如tab10色彩图。要循环显示此类颜色图,解决方案可能是不使用N但只需将地图的所有颜色移植到循环仪即可。

import matplotlib.pyplot as plt

plt.rcParams["axes.prop_cycle"] = plt.cycler("color", plt.cm.tab20c.colors)

fig, ax = plt.subplots()
for i in range(15):
    ax.plot([0,1], [i, 2*i])

plt.show()

请注意,仅ListedColormaps.colors属性,所以这仅适用于那些颜色图,但不适用于例如这jet map.

组合解决方案

以下是一个通用函数,它将颜色图作为输入并输出相应的循环器。我最初提出这个解决方案这个 matplotlib 问题.

from matplotlib.pyplot import cycler
import numpy as np
from matplotlib.colors import LinearSegmentedColormap, ListedColormap
import matplotlib.cm

def get_cycle(cmap, N=None, use_index="auto"):
    if isinstance(cmap, str):
        if use_index == "auto":
            if cmap in ['Pastel1', 'Pastel2', 'Paired', 'Accent',
                        'Dark2', 'Set1', 'Set2', 'Set3',
                        'tab10', 'tab20', 'tab20b', 'tab20c']:
                use_index=True
            else:
                use_index=False
        cmap = matplotlib.cm.get_cmap(cmap)
    if not N:
        N = cmap.N
    if use_index=="auto":
        if cmap.N > 100:
            use_index=False
        elif isinstance(cmap, LinearSegmentedColormap):
            use_index=False
        elif isinstance(cmap, ListedColormap):
            use_index=True
    if use_index:
        ind = np.arange(int(N)) % cmap.N
        return cycler("color",cmap(ind))
    else:
        colors = cmap(np.linspace(0,1,N))
        return cycler("color",colors)

“连续”情况的用法:

import matplotlib.pyplot as plt
N = 6
plt.rcParams["axes.prop_cycle"] = get_cycle("viridis", N)

fig, ax = plt.subplots()
for i in range(N):
    ax.plot([0,1], [i, 2*i])

plt.show()

用于“离散”情况

import matplotlib.pyplot as plt

plt.rcParams["axes.prop_cycle"] = get_cycle("tab20c")

fig, ax = plt.subplots()
for i in range(15):
    ax.plot([0,1], [i, 2*i])

plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 matplotlib 颜色图进行颜色循环 的相关文章

  • 根据 pandas 中的条件交换列值

    我想按条件重新定位列 如果国家 地区是 日本 我需要将姓氏和名字反向重新定位 df pd DataFrame France Kylian Mbappe Japan Hiroyuki Tajima Japan Shiji Kagawa Eng
  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • 如何在算术表达式的结果上添加 SQLAlchemy 标签?

    我如何将这样的东西翻译成 SQLAlchemy select x y as difference 我知道该怎么做 x label foo 但我不确定在哪里放置下面的 label 方法调用 select table c x table c y
  • 对打开文件的脚本进行单元测试

    我编写了一个脚本 它打开一个文件 读取内容并进行一些操作和计算 并将它们存储在集合和字典中 我该如何为这样的事情编写单元测试 我的问题具体是 我会测试文件是否打开 文件很大 这是unix字典文件 我如何对计算进行单元测试 我真的必须手动计算
  • 无法安装时间模块

    我试过了pip install time and sudo H pip install time 但我不断收到错误 找不到满足要求时间的版本 从 版本 未找到时间匹配的发行版 我正在 PyCharm 中工作 但真正没有意义的是我可以在 Py
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 如何从网站中提取冠状病毒病例?

    我正在尝试从网站中提取冠状病毒 https www trackcorona live https www trackcorona live 但我得到了一个错误 这是我的代码 response requests get https www t
  • 为 PyCharm 中的所有配置设置相同的环境变量

    我有一个与 Celery 和很多不同的工作人员一起的项目 如何避免每次将 PyCharm 中的环境变量复制粘贴到每个运行 调试配置 有什么方法可以在项目设置中设置它们吗 找到解决方案here https stackoverflow com
  • 远程控制或脚本打开 Office 从 Python 编辑 Word 文档

    我想 最好在 Windows 上 在特定文档上启动 Open Office 搜索固定字符串并将其替换为我的程序选择的另一个字符串 我该如何从外部 Python 程序中做到这一点 OLE 什么 原生 Python 脚本解决方案 The doc
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • 一起使用 Argparse 和 Json

    我是 Python 初学者 我想知道 Argparse 和 JSON 是否可以一起使用 说 我有变量p q r 我可以将它们添加到 argparse 中 parser add argument p param1 help x variabl
  • 使用 Python 解析 XML,解析外部 ENTITY 引用

    在我的 S1000D xml 中 它指定了一个带有对公共 URL 的引用的 DOCTYPE 该 URL 包含对包含所有有效字符实体的许多其他文件的引用 我使用 xml etree ElementTree 和 lxml 尝试解析它并得到解析错
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 如何将同步函数包装在异步协程中?

    我在用着aiohttp https github com aio libs aiohttp构建一个 API 服务器 将 TCP 请求发送到单独的服务器 发送 TCP 请求的模块是同步的 对于我来说是一个黑匣子 所以我的问题是这些请求阻塞了整
  • 这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。 [操作:Conv2D]

    我在 anaconda 中安装了 TensorFlow GPU 2 0 当我安装它并导入包 然后运行我的 CNN 模型时 它工作正常 但当我尝试运行训练模型时 出现错误 这是我的错误报告 Epoch 1 50 UnknownError Tr
  • 如何将reportlab与Google应用程序引擎一起使用

    我无法在谷歌应用程序引擎下正确导入reportlab 根据以下guide http blog notdot net 2010 04 Generating PDFs on App Engine Python and introducing M
  • 将参数传递给 __enter__

    刚刚学习 with 语句尤其是这篇文章 http effbot org zone python with statement htm 问题是 我可以传递一个参数给 enter 我有这样的代码 class clippy runner def
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • Python列表对象属性“append”是只读的

    正如标题所说 在Python中 我试图做到这一点 以便当有人输入一个选择 在本例中为Choice13 时 它会从密码列表中删除旧密码并添加新密码 passwords mrjoebblock mrjoefblock mrjoegblock m
  • Melt() 函数复制数据集

    我有一个这样的表 id name doggo floofer puppo pupper 1 rowa NaN NaN NaN NaN 2 ray NaN NaN NaN NaN 3 emma NaN NaN NaN pupper 4 sop

随机推荐

  • 传入未定义的目的是什么?

    我注意到了jQuery以及相关的主题插件 例如jQuery UI pass undefined作为模块定义中使用的匿名函数的参数 如下所示 function undefined jQuery 另外 我注意到 jQuery 推荐的其他插件和
  • 如何以编程方式将类或伪类添加到 JavaFX 中的自定义控件?

    在JavaScript世界中 通常设置元素类来表示它的外观 后来由CSS定义 JavaFX 中也是这样吗 例如 如果我想将负值涂成红色怎么办 TableView细胞 我不会直接编码颜色 但为单元格分配了一些类 例如 负 然后将其着色为红色C
  • 创建我的第一个树枝扩展以向基本模板提供全局变量

    我需要用一些 HTML 代码填充一个变量 并使其可用于我的 base html twig 文件 为了实现这一点 我做了一个树枝扩展 这是我第一次使用树枝扩展 所以我不确定这是否是正确的做法 这是我到目前为止所拥有的 扩展代码 class G
  • 如何更改spark中的日志级别?

    我尝试了所有这些方法 但没有任何作用 在 log4j 文件中 log4j logger org OFF log4j rootCategory ERROR console log4j rootCategory OFF console 在代码中
  • wxpython面板全屏?

    我试图让我的程序的 top panel 仅进入全屏 我希望有一个按钮可以执行此操作 我面临的问题是我不知道如何使面板自行进入全屏而不强制整个使用 ShowFullscreen true 进入全屏的框架 我希望你可以帮助我 class top
  • 如何使用 pytest Monkeypatch 模拟两个连续的控制台输入

    如果第一个用户输入的答案是 n 则模块 overwrite file 请参阅 代码示例 会要求输入新文件名 在我的测试设置中 我使用两个连续的 Monkeypatch setattr 调用来模拟输入 如果我使用以下顺序 结果将是无限循环 m
  • delphi获取成员函数指针

    有没有一些技巧如何在 Lazarus delphi 中获取成员函数的指针 我有这段代码无法编译 错误是 在德尔福 variable required在拉撒路 Error Incompatible types got
  • 没有数据库的休眠搜索

    是否可以仅将 hibernate search 用于其注释 bean gt document document gt bean 映射 而不使用数据库 如果是这样 是否有任何在线示例基本上显示如何进行设置 我发现了以下内容 http mojo
  • 错误:找不到模块“eslint-config-flowtype”

    我正在尝试一起使用 Webpack ESLint 和 Flow 类型 但是 当我启动 webpack dev server 时 我收到以下错误消息 奇怪的是eslint config flowtype甚至不是 NPM 中的模块 以前有人遇到
  • 将哈希表值属性导出到 CSV 文件

    我正在运行Test AdfsServerHealth Ref 问题是 输出值之一 值名称Output 是一个数组 显示为System Collection Hashtable我正在尝试找到一种方法以简洁的 Excel 格式获取此内容 例如
  • Android:将 ListVIew 中的项目居中

    我刚刚开始学习Android 想到了一个简单的项目来帮助我学习 我在 LinearLayout 上使用 ListView 创建了一个简单的菜单 我想要做的是将 ListView 中的文本居中 并将 ListView 放在布局中居中 我尝试将
  • 使用 CSS 旋转内联元素

    我意识到已经有很多这样的问题了 但我似乎无法让它们为我工作 因为大多数解决方案都针对 第 n 个孩子 或 以我极其 新手 的技能 我只是不明白它是如何工作的 我正在尝试为一项任务制作一个 交易或不交易 游戏 我花了太多时间让它看起来不错 这
  • WPF控件创建过程的步骤

    我已经寻找这样的解释有一段时间了 但我还没有找到任何解释 问题是我想知道 Wpf 控件的初始化 创建过程的步骤 让我们看一个简单的按钮 我想知道当调用构造函数时发生了什么 何时将控件添加到视觉树 逻辑树 何时调用依赖属性值 何时调用Appl
  • Phonegap触摸事件

    我的问题是我想从首页 index html 播放音频 视频文件 它的工作原理是这样的 function setaudio aud prepend a href img src icons audio file png alt Audioda
  • 删除存储在数组中的特定类对象[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我的代码有问题 我想知道是否有人可以看一下 我创建了一
  • 如何为旧的 Angular 项目提供服务?

    我试图ng serve第三方框架中包含的 Angular 示例项目 从其示例项目来看 它需要 Angular v 4package json文件 我的全局 CLI 版本是 6 0 8 该项目不包括node modules文件夹也不是angu
  • 将 PList 中的数据获取到 UITableView 中?

    我想维护一个记录列表 对于每条记录 我都维护相同类型的数据 我想在两个不同的地方使用这些数据 UITableView从每条记录中获取 名称 值 UIViewController这需要所有数据在不同领域使用 我认为我应该使用 plist 来存
  • 删除值时输入掩码不起作用

    我构建了一个函数来在键入时屏蔽输入 它工作正常 但是当删除输入中的值时 屏蔽的行为很奇怪 function App const phone setPhone React useState function maskPhone target
  • 替换dom元素中的所有字符串

    我有一个像这样的 DOM table style display none tr td td tr table
  • 使用 matplotlib 颜色图进行颜色循环

    如果我通过以下方式创建颜色 import numpy as np from matplotlib import pyplot as plt n 6 color plt cm coolwarm np linspace 0 1 0 9 n co