根据颜色图绘制条形图中的 y 值

2024-01-09

我已经在论坛上搜索过,发现this https://stackoverflow.com/questions/42656585/barplot-colored-according-a-colormap,但我的问题有点不同。 正如您从代码和下面的图像中看到的,我创建了一个带有颜色图“virdis”的地图。 如何使用相同的颜色图创建单独的条形图?我想为 4 个颜色条着色(现在用简单颜色着色),以便 y 轴上的值与颜色条上的值相对应,这可能吗?

我有这个矩阵:

matrix=[[ 0 0 0 0 17 25 29 35 36 41] [16 22 17 10 9 21 23 27 26 22] [ 8 19 13 16 13 5 4 11 5 4] [ 3 11 10 8 7 1 0 0 0 0]]

在这段代码中:

fig, ax = plt.subplots(figsize=(7, 10))

im = ax.imshow(matrix, cmap='viridian')

ax.set_xticks([0,1,2,3,4,5,6,7,8,9])
ax.set_xticklabels(['0.5','1.0','1.5','2.0','2.5','3.0','3.5','4.0','4.5','5.0'])
ax.set_xlabel('Redshift')
ax.set_yticks([-0.5,0.5,1.5,2.5,3.5])
ax.set_yticklabels(['50k','10k','1k','0.1k','0'])
ax.set_ylabel('counts')


divider = make_axes_locatable(ax)
axHistx1 = divider.append_axes("top", 1.2, pad=0.2, sharex=ax)
axHistx1.xaxis.set_tick_params(labelbottom=False)
axHistx2 = divider.append_axes("top", 1.2, pad=0.2, sharex=ax)
axHistx2.xaxis.set_tick_params(labelbottom=False)
axHistx3 = divider.append_axes("top", 1.2, pad=0.2, sharex=ax)
axHistx3.xaxis.set_tick_params(labelbottom=False)
axHistx4 = divider.append_axes("top", 1.2, pad=0.2, sharex=ax)
axHistx4.xaxis.set_tick_params(labelbottom=False)


cbaxes = fig.add_axes([0.125, 0.03, 0.774, 0.04])
cbar=fig.colorbar(im, label='match num.', cax = cbaxes, orientation="horizontal", boundaries=np.linspace(0,50,1001),
                  ticks=[0,10,20,30,40,50])
cbar.set_clim(0,50)


#print(matrix)
row0 = np.array(matrix[0,:])
row1 = np.array(matrix[1,:])
row2 = np.array(matrix[2,:])
row3 = np.array(matrix[3,:])
col0 = np.array(matrix[:,0]).T
col1 = np.array(matrix[:,1]).T
col2 = np.array(matrix[:,2]).T
col3 = np.array(matrix[:,3]).T
col4 = np.array(matrix[:,4]).T
col5 = np.array(matrix[:,5]).T
col6 = np.array(matrix[:,6]).T
col7 = np.array(matrix[:,7]).T
col8 = np.array(matrix[:,8]).T
col9 = np.array(matrix[:,9]).T

zbin = [0,1,2,3,4,5,6,7,8,9]
row0 = row0.ravel();row1 = row1.ravel();row2 = row2.ravel();row3 = row3.ravel();

axHistx1.bar(zbin, row3, color='orange', alpha=0.5, edgecolor=['orange']*len(zbin))
axHistx1.set_ylim(0,50)
axHistx1.set_ylabel('match')
axHistx2.bar(zbin, row2, color='r', alpha=0.5, edgecolor=['r']*len(zbin))
axHistx2.set_ylim(0,50)
axHistx2.set_ylabel('match')
axHistx3.bar(zbin, row1, color='g', alpha=0.5, edgecolor=['g']*len(zbin))
axHistx3.set_ylim(0,50)
axHistx3.set_ylabel('match')
axHistx4.bar(zbin, row0, color='cornflowerblue', alpha=0.8, edgecolor=['cornflowerblue']*len(zbin))
axHistx4.set_ylim(0,50)
axHistx4.set_ylabel('match')
ax.axis('tight')

plt.show()

要为条形着色,您可以循环遍历条形并设置颜色。例如,这显示为在这个问题中使用从颜色图中获取的颜色绘制直方图 https://stackoverflow.com/questions/23061657/plot-histogram-with-colors-taken-from-colormap对于直方图。对于酒吧来说更容易,如图所示在如何在 matplotlib 中将数字转换为色标? https://stackoverflow.com/questions/43009724/how-can-i-convert-numbers-to-a-color-scale-in-matplotlib

bars = plt.bar(x, y, color=list_of_colors)

现在您需要找出您真正想要为条形指定的颜色。为此,您将依赖于先前生成的图像的颜色图和规范,

plt.bar(x, y, color=im.cmap(im.norm(y)))

使用循环来消除冗余代码也很有意义subplots代替make_axes_divisable.

import numpy as np
import matplotlib.pyplot as plt


matrix=[[ 0,  0,  0,  0, 17, 25, 29, 35, 36, 41],
     [16, 22, 17, 10,  9, 21, 23, 27, 26, 22],
     [ 8, 19, 13, 16, 13,  5,  4, 11,  5,  4],
     [ 3, 11, 10,  8,  7,  1,  0,  0,  0,  0]]

fig, axes = plt.subplots(nrows = 5, sharex=True, figsize=(6, 8),
                         gridspec_kw=dict(height_ratios=[1,1,1,1,3]))
fig.subplots_adjust(top=0.95, bottom=0.05)
ax = axes[-1]
im = ax.imshow(matrix, cmap='viridis', aspect="auto")

ax.set_xticks([0,1,2,3,4,5,6,7,8,9])
ax.set_xticklabels(['0.5','1.0','1.5','2.0','2.5','3.0','3.5','4.0','4.5','5.0'])
ax.set_xlabel('Redshift')
ax.set_yticks([-0.5,0.5,1.5,2.5,3.5])
ax.set_yticklabels(['50k','10k','1k','0.1k','0'])
ax.set_ylabel('counts')

#cbaxes = fig.add_axes([0.125, 0.03, 0.774, 0.04])
cbar=fig.colorbar(im, label='match num.', ax = axes[-1],  pad=0.2,
                  orientation="horizontal", boundaries=np.linspace(0,50,1001),
                  ticks=[0,10,20,30,40,50])
cbar.set_clim(0,50)

zbin = [0,1,2,3,4,5,6,7,8,9]

for i, ax in enumerate(axes[:-1]):
    y = np.array(matrix)[i,:]
    bars = ax.bar(zbin, y, color=im.cmap(im.norm(y)))
    ax.set_ylim(0,50)
    ax.set_ylabel('match')

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

根据颜色图绘制条形图中的 y 值 的相关文章

  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 以同步方式使用 FastAPI,如何获取 POST 请求的原始正文?

    在中使用 FastAPIsync not async模式 我希望能够接收 POST 请求的原始 未更改的正文 我能找到的所有例子都显示async代码 当我以正常同步方式尝试时 request body 显示为协程对象 当我通过发布一些内容来
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f

随机推荐

  • 忽略具有日期范围的 SQL 查询中的年份

    通常 如果我想按日期范围对表进行查询 我会这样做 SELECT DISTINCT c ID AS id FROM CUST c JOIN TICKET t ON s ID t SALE ID WHERE c ACTIVE IND 1 AND
  • 位操作良好实践

    作为一名初级 C 程序员 我想知道在设备中设置控制位的最佳易读且易理解的解决方案是什么 有没有标准 有可以模仿的示例代码吗 谷歌没有给出任何可靠的答案 For example I have a control block map 我看到的第
  • 在 iOS 中添加 FFMPEG 库

    我正在尝试使用 FFMPEG 库的功能 比如像libavcodec a libavformat a libavutil a and libswresample a 但我对如何将 FFMPEG 库添加到我的项目中感到困惑 为什么选择 FFMP
  • 衡量 Java 中单线程复杂算法的最佳宏观基准测试工具/框架是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想为我的 Java 代码 一个单线程 本地 复杂的算法 进行一些性能测量 主要是运行时 所以我不想用宏观基准来衡量 JVM 实现 有了这
  • 覆盖 sphinx/docutils 中的默认字段名称限制

    我在用sphinx http sphinx pocoo org 用于为项目生成 html 文档 我广泛使用字段列表 http docutils sourceforge net docs user rst quickref html fiel
  • MaterialDatePicker 获取选定的日期

    我在 Android 中这样调用 MaterialDatePicker MaterialDatePicker Builder
  • Clojure defprotocol 作为表达问题的解决方案

    在 Clojure 的乐趣 一书中 defprotocol是作为解决方案提供的表达问题 希望为现有的具体类实现一组现有的抽象方法 而不必更改定义其中任何一个的代码 给出的例子如下 defprotocol Concatenatable cat
  • 如何打印XCUITest中的所有静态文本

    我用过app staticTexts String tap 点击包含该字符串的按钮 该按钮工作完全正常 但这里的问题是我想打印所有static该页面上存在的文本 我该如何做XCUITest 我的目标是迭代所有static页面上显示的文本 然
  • 是否可以编译 linq-to-objects 的查询

    我有一个递归循环中的 linq to 对象查询 担心当对象接近 1000 个以上并且网站上的用户超过 100 个时 我的网站就会崩溃 那么是否可以编译 linq to object 查询 linq 查询只是查找节点的直接子节点 看看为什么这
  • 在另一个 Case 语句中使用 Case 语句的结果

    我有相当长的SELECT查询 但我已将相关部分粘贴到此处 我需要使用我的结果CASE在另一个语句中使用CASE陈述 我正在 SQL Server 中执行此操作 将非常感谢您的帮助 SELECT CompanyContact Name AS
  • Logstash可以直接读取远程日志吗?

    我是 Logstash 的新手 几天来我一直在阅读有关它的内容 和大多数人一样 我试图拥有一个集中式日志系统并将数据存储在 elasticsearch 中 然后使用 kibana 来可视化数据 我的应用程序部署在许多服务器中 因此我需要从所
  • 如何在 then 语句中返回一系列承诺

    因此 在过去的几个小时里 我一直在研究异步内容并使用 Promise 我正在使用测试框架量角器 并且有一些异步问题我遇到了麻烦 在此保存函数中 我异步调用 cm org1 all 然后使用 then 获取响应 我循环响应 并且需要对响应中的
  • hibernate hbm 文件中的 @Convert 相当于什么?

    我写了一个属性转换器 我想将其应用到一个实体中 到目前为止 我正在遵循纯粹的 XML 方法 我找不到相当于 Convert in hbm符号 举个例子将不胜感激 当我搜索这个时 可以理解的是 Google 返回了很多有关 自动将 hbm 文
  • VS2015中c#类的每个方法添加断点

    我有一个类 我希望调试器在调用其任何方法时停止 我尝试使用 New function breakpoint 但我找不到可用的通配符 Function Name 例如 我尝试了 MyNamespace MyClass 有 c 的示例 但它们似
  • 如何检测硬件按键点击?

    我现在需要检测当 flutter 应用程序位于前台或打开时是否按下了任何硬件按钮 例如 当有人按下音量或另一个按钮 即使是关闭电源的按钮 时 我想在我的应用程序中执行某些操作 我知道 当打开一个 flutter 应用程序并且我正在查看应用程
  • 无法在 groovy 中传递闭包

    我正在尝试运行 Geb 库的基本示例 http www gebish org manual current intro html introduction 这是代码 import geb Browser Browser drive go h
  • 环形包裹地图上一组点之间的“质心”,可最小化到所有点的平均距离

    edit 正如有人指出的那样 我正在寻找的实际上是最小化所有其他点之间的总测地距离的点 我的地图在地形上与 吃豆人 和 小行星 中的地图相似 越过顶部将使您扭曲到底部 越过左侧将使您扭曲到右侧 假设我在地图上有两个点 质量相同 我想找到它们
  • 开发面板中的本地化错误

    我购买了一个应用程序 尝试更新开发面板上的信息 当我尝试保存时收到以下错误 您的 1 个本地化内容有错误 它显示了错误位置 但我不知道问题是什么 如果您在选中媒体管理器中的复选框以使用新的 较大的屏幕尺寸屏幕截图之前没有删除较小 较旧尺寸的
  • Web.config保存问题

    我想通过 Web 应用程序的前端向用户公开一些 web config 设置 我可以毫无问题地检索设置 但是当我保存时 我要么收到错误 要么更改不会保留到 web config 文件中 我是在VS中调试的 如果我运行这个 private vo
  • 根据颜色图绘制条形图中的 y 值

    我已经在论坛上搜索过 发现this https stackoverflow com questions 42656585 barplot colored according a colormap 但我的问题有点不同 正如您从代码和下面的图像