分段色彩图的自定义色彩图边界

2024-04-08

我有下图,其中包含具有某些量化特征的多个向量的可用数据:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors

fig = plt.figure(figsize=(10,7))
ax = fig.add_subplot()
category = [0,0,0,0.1,0.4,0.9,1.5]
r = np.random.uniform(size=[len(category)*100]).reshape(len(category),100)

norm = matplotlib.colors.Normalize(vmin=min(category), vmax=max(category))
bounds = np.array([0, 0.3, 0.5, 1.5])
norm = colors.BoundaryNorm(boundaries=bounds, ncolors=3)
cmap = matplotlib.cm.ScalarMappable(norm=norm, cmap=colors.ListedColormap(['green', 'blue', 'red']))
cmap.set_array([])
for no, cat in enumerate(category):
    ax.plot(r[no][r[no]>0.1],no*np.ones(100)[r[no]>0.1],'o',color=cmap.to_rgba(category[no]))
cbar = fig.colorbar(cmap, ax=ax, pad=0.01)

我想知道是否有任何方法可以移动颜色图特征边界以对应于图片中向量之间的边界? (如黑色箭头所示)

我以为spacing='proportional'会对我有帮助,但是,这取决于特征,并且我想让它取决于具有某些特征范围的向量的数量。

Additionally, is it possible to use these custom boundaries for gradient (not segmented) colormap?


我找到了做我所要求的事情的方法。 这个想法是创建一个新变量,该变量取决于每组中向量的数量,并使用该变量spacing='proportional'。这是 MWE:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors as colors

fig = plt.figure(figsize=(10,7))
ax = fig.add_subplot()
category = np.array([0,0,0,0.1,0.4,0.9,1.5])
r = np.random.uniform(size=[len(category)*100]).reshape(len(category),100)

norm = matplotlib.colors.Normalize(vmin=min(category), vmax=max(category))

lev1 = 0.3
lev2 = 0.5

gr0 = (category<=lev1).sum()
gr2 = (category>lev2).sum()
gr1 = len(category) - gr0 - gr2
frac = np.array([gr0,gr1,gr2])/len(category)
bounds = np.array([0, frac[0], frac[1]+frac[0], 1])
gr_color = np.where(category<lev1,0,np.where(category>=lev2,1,frac[0]+frac[1]/2))

norm = colors.BoundaryNorm(boundaries=bounds, ncolors=3)
cmap = matplotlib.cm.ScalarMappable(norm=norm, cmap=colors.ListedColormap(['green', 'blue', 'red']))
cmap.set_array([])
for no, cat in enumerate(category):
    ax.plot(r[no][r[no]>0.1],no*np.ones(100)[r[no]>0.1],'o',color=cmap.to_rgba(gr_color[no]))
cbar = fig.colorbar(cmap, ax=ax, pad=0.01,spacing='proportional')
dic = {bounds[0] : 0 ,bounds[1] : lev1, bounds[2] : lev2,bounds[3] : "1.5"}
labels = [bounds[i] if t not in dic.keys() else dic[t] for i,t in enumerate(bounds)]
cbar.ax.set_yticklabels(labels)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分段色彩图的自定义色彩图边界 的相关文章

随机推荐

  • 缺少 CrudRepository#findOne 方法

    我在我的项目中使用 Spring 5 直到今天还有可用的方法CrudRepository findOne https docs spring io spring data commons docs current api org sprin
  • scala集合循环缓冲区

    只是在这里用循环缓冲区搞乱 这是一个明智的实现 还是有更快 更可靠的方法来给这只猫剥皮 class CircularBuffer T size Int implicit mf Manifest T private val arr new s
  • 一个得到良好支持的 C++ 联合替代方案?

    我认为联合对于我的想法来说是完美的 特别是当我认为我的代码应该在真正异构的机器系列上运行时 特别是低功率机器上 让我烦恼的是创建编译器的人例如 似乎不太关心引入和提供良好的工会支持这张桌子 http wiki apache org stdc
  • 在编辑文本中输入内容时,列表视图上的过滤器会消失列表项

    我遇到了一个奇怪的问题 实际上 我有一个自定义列表视图 在其中使用过滤器 一切正常 但是当我输入文本进行编辑文本时 它会消失所有列表项 我很奇怪为什么这种情况会发生在我身上 但我仍然不是 Android 的冠军 所以需要一些帮助 我在 st
  • 有没有比使用箭头键更快的替代方法?

    我经常使用 R 进行编码 我刚刚意识到将手向下移动到箭头键 然后再回到键盘上的字母是多么痛苦 在 Rstudio 中 我必须定期执行此操作 因为工作室会自动完成某些语法 例如括号和引号 然后我必须按箭头键移出括号 或引号 然后删除任何可能的
  • 如何使用 logit 函数编写 JAGS 二项式模型文件

    我正在做一项作业 使用 JAGS 对二项式分布进行建模p参数是另一个变量的函数d 这就是我正在尝试做的 为两个参数 alpha beta 从后验生成 10000 个样本 当 dist 25 进行 100 次尝试时 根据后验预测成功次数生成样
  • 如何使滑块离散?

    如何在 Flutter 中使滑块离散如上图所示 滑块离散 https i stack imgur com e2gp6 png Use the divisions的财产Slider https docs flutter io flutter
  • 使用curl和php发送POST数据

    Greets 因此 我在 Amazon EC2 上运行 Fedora Core 8 我安装了 httpd php5 和 libcurl 以及一堆其他东西 似乎工作得很好 但后来我意识到 POST 数据不是由我的 php 脚本中的curl 发
  • get_data_yahoo(pandas_datareader) 中 1m 间隔的问题

    I wrote from pandas datareader import data as pdr import yfinance as yf data pdr get data yahoo AAPL start 2020 04 12 en
  • (111)连接被拒绝 - Apache 反向代理和 Tomcat 8.5.51 - Docker Compose

    这适用于 Tomcat8 5 50 但是 使用 Tomcat8 5 51 Apache 无法通过 AJP 连接 出现以下错误 Tue Mar 10 20 15 31 378937 2020 proxy error pid 42 tid 13
  • 使用 Solver、EXCEL 时保存目标函数值

    我在 Excel 中设置了一个优化问题 当我优化 使用 GUI 时 我得到目标函数的最终 最佳 值 我可以看到 Excel 计算了很多点的目标函数值并确定了最佳点 有没有办法将所有目标函数值保存到 Excel 工作表中的某个范围 如果我可以
  • 我可以限制通过 JavaScript API 放入 S3 的对象的大小吗?

    可以使用 JavaScript API 将对象上传到 S3 并且可以使用 IAM 策略进行细粒度授权 例如 请参阅此政策 Version 2012 10 17 Statement Action s3 PutObject s3 PutObje
  • 当下游正在运行时阻止上游詹金斯作业

    我知道构建阻止程序插件 但似乎不起作用 运行詹金斯 1 609 作业 A 触发作业 B 我将作业 A 配置为在作业 B 正在运行时阻止 如果您触发 A 并且在 A 运行时再次触发 A 一旦第一个 A 完成 它就会触发 B 然后您就会同时运行
  • 仅允许特定 IP 地址访问 JSP 文件/文件夹

    我使用 JSP 和 servlet 制作了一个 CMS 应用程序 我没有使用任何类型的框架 CMS 有 2 个部分 前端 管理员 后端 如果我把它托管在www example com 例如 那么我的所有前端站点都会向所有用户显示 But w
  • 从具有相同列的两个表中选择数据

    我有两个具有相同结构的表 一种包含永久数据 另一种是清除并定期重置的 我需要对两个表使用相同的 select 语句 就好像它们只是一张表一样 这是我尝试过的 选择 从a b哪里 1 Where a and b具有相同的结构 您可能正在考虑在
  • HtmlAgilityPack 可以处理 xsl 文件附带的 xml 文件来渲染 html 吗?

    我想知道 HtmlAgilityPack 读取包含 xsl 文件的 xml 文件以呈现 html 的最佳方式 HtmlDocument 类上是否有任何设置可以帮助实现此目的 或者我是否必须找到一种方法来执行转换 然后再使用 HtmlAgil
  • 如何删除或排除 Ansible 模板列表中的项目?

    我正在编写一个 Ansible 模板 需要生成主机组中的 IP 列表 排除当前主机IP 我在网上和文档中进行了搜索 但找不到任何允许您删除列表中项目的过滤器 我在下面创建了 hacky for循环来执行此操作 但想知道是否有人知道这样的过滤
  • time.time_ns() 在 macOS 上未正确返回纳秒?

    从 Python 3 7 开始 我们有了支持纳秒分辨率的新时间函数 但是 我不确定如何time time ns 应该可以工作 看下面的例子 gt gt gt for n in range 10 time sleep random rando
  • 防止安装具有特定包名的 Android 应用程序

    我正在使用 android studio 开发两个 Android 应用程序 出于某种原因 我希望其中一个应用程序可以安装在设备上 我想我应该检查第二个应用程序的包名称并阻止它安装 有什么办法可以做到这一点吗 谢谢 您无法阻止任何应用程序的
  • 分段色彩图的自定义色彩图边界

    我有下图 其中包含具有某些量化特征的多个向量的可用数据 import matplotlib pyplot as plt import numpy as np import matplotlib colors as colors fig pl