使用 Matplotlib 进行选择性模式 imshow

2023-12-07

有没有办法将自定义图案放入 imshow 图表上的选定区域?准确地说,我需要做到这一点,除了携带数字数据的彩色方块之外,我还在其他方块中使用不同的图案来指示实验的不同故障模式(并且还生成一个解释这些含义的密钥)不同的模式)。有用的图案的一个例子是各种类型的剖面线。我需要能够在不破坏图表上主要颜色数字数据关系的情况下做到这一点。

下面是我尝试使用答案中建议的代码。如果我评论错误部分,则在没有来自掩码的数据的地方,imshow 会显示出良好的空白。我什至没有尝试对不同的故障类型进行不同类型的交叉影线,也没有尝试处理模拟或实验有效但另一个尚未有效的情况。

EDIT3:我从多处理包收到关于它如何“无法腌制”对象的错误消息。由于程序的原因,这是它的一部分通过多处理包。有什么方法可以解决此问题或在不使用 add_patches 的情况下执行此操作(下面建议的绘图方法不起作用,因为绘图发生在完全不同的坐标系上并绘制连接线)?

import numpy as np
import matplotlib.patches as patches
...
grid = np.ma.array(grid, mask=np.isnan(grid))
plot.imshow(grid, interpolation='nearest', aspect='equal', vmax = private.vmax, vmin = private.vmin)
if show_fail and faildat != []:
    faildat = faildat[np.lexsort((faildat[:,yind],faildat[:,xind]))]
    fails = []
    for i in range(len(faildat)):
        fails.append((faildat[i,1],faildat[i,0]))
    for F in fails:
        p = patches.Rectangle(F,1,1,hatch='/',fill=False)
        plot.add_patch(p)
plot.minorticks_off()
plot.set_xticks(range(len(placex)))        
plot.set_yticks(range(len(placey)))
plot.set_xticklabels(placex)        
plot.set_yticklabels(placey, rotation = 0)
plot.colorbar()
plot.show()

有多种方法可以做到这一点,哪种方法更好取决于您是否需要标记大区域或分散的单个像素。

如果需要标记大区域,可以通过在图像上添加矩形来实现:

import matplotlib as mpl
import matplotlib.pyplot as plt
from numpy.random import rand

ax = plt.gca()
ax.imshow(rand(50,50))
ax.add_patch(mpl.patches.Rectangle((2,2),20,20,hatch='//////////',fill=False,snap=False))
plt.draw()

Rectangle (doc)多种哈希选项。这只是在图像之上添加额外的艺术家,他们不会以任何方式影响数据颜色映射。数量众多/增加散列标记的密度,这可能是实际看到小盒子的散列所必需的。

ex:

from numpy.random import rand
import matplotlib as mpl
import matplotlib.pyplot as plt
     
ax = plt.gca()
ax.imshow(rand(50,50),interpolation='nearest')
for i,j in np.floor(50*rand(10,2)).astype('int'):
    ax.add_patch(mpl.patches.Rectangle((i-.5, j-.5), 1, 1, hatch='///////', fill=False, snap=False))

plt.draw()

image with some pixel hatched If you just need to mark a few pixels here and you might be able to get away with just plotting (using plot([x],[y],marker='x') and maybe playing with the marker size).

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

使用 Matplotlib 进行选择性模式 imshow 的相关文章

随机推荐

  • 计算对象数组中的重复项

    我的服务器端 JS 中有一个对象数组 如下所示 Company IBM Person ACORD LOMA Company IBM Company MSFT Place New York 我需要迭代这个结构 检测任何重复项 然后创建沿着每个
  • 单独编译模式下 cuda 代码的 mex 链接

    我正在尝试在 Linux 下的 MATLAB mex 中使用 CUDA 代码 使用 整个程序编译 模式 它对我来说效果很好 我在 Nsight 中执行以下两个步骤 1 将 fPIC 作为编译器选项添加到每个 cpp或 cu文件中 然后分别编
  • C# 类型名称而不是 CLR 类型名称

    typeof int Name 将返回 System Int32 有谁知道返回 int 的方法 C 关键字 int double string 的类型并不多 因此您也许可以编写自己的映射函数 从系统类型名称到相应的 C 关键字
  • Intellij 错误:内部缓存已损坏或格式过时

    当我在 Intellij 中构建 Java 项目时 我间歇性地收到错误 内部缓存已损坏或格式过时 强制项目重建 java io FileNotFoundException C target classes ehcache xml 访问被拒绝
  • 正则表达式误解或只是破坏了实现?

    我尝试了一个非常简单的用法regex search并且不明白为什么我没有得到匹配 唉 gcc C 0x implementations 4 5 似乎不起作用 我收到链接错误here 但这是我的 gcc 4 7 0 尝试 非常简单 inclu
  • 使用 GROUP BY 获取最后的条目

    我在 GROUP BY 方面遇到问题 它返回它可以找到的第一个条目 但我希望它返回最后一个条目 那可能吗 这是我的查询 准备好的查询 SELECT stamp user stamp date stamp type FROM rws stam
  • 如何使用字典替换 Pandas 系列中的多个子字符串?

    我有 Pandas 系列的琴弦 我想对多个子字符串进行多次替换per row see testdf pd Series Mary went to school today John went to hospital today to sub
  • 如何正确插入允许 LD_PRELOAD 链接的 malloc

    我创建了一个共享库 它插入 malloc 和相关调用 效果很好 但有一些注意事项 有一点是行不通的 我期望能够链接插入器 以便我可以运行类似的东西 LD PRELOAD path to mymalloc so usr lib64 jemal
  • Android Studio 0.4 & 黄油刀

    我无法获取 Android Studio 0 4 gradle 项目 和 Jake Wharton 的牛油刀一起玩得好 对视图 应该注入的 ViewPager 的引用始终为空 我尝试启用注释处理 设置 gt 编译器 gt 注释处理器 gt
  • TypeScript 永远不会在条件类型中输入不一致的匹配?

    在下面的代码中 您会注意到类型Result1 is never 但类型test3 is 我无法理解这一点 考虑到他们都在阅读 为什么结果不一样never输入来自MyEvents type EventArgs
  • 将 csv 导入到 JTable

    我有一个 csv 文件 我想将其导入到 JTable 中 有没有一个简单的例子展示如何将csv文件导入到JTable 使用 OpenCSV CSVReader reader new CSVReader new FileReader your
  • 一张图像中的多个 OHLC 数据集

    如何使用 JFreeChart 在一张图像中绘制多个数据集的图表 本质上 我想在一张图像中绘制股票的价格及其移动平均线 我尝试获取 XYPlot 并添加第二个数据集 但它不起作用 DefaultOHLCDataset dataset new
  • 使用分页进行 JavaFX TableView 过滤(一起)

    我做了一些研究表格视图 s Filtering and Pagination分别地 过滤 this帖子根据我的需要帮助了我 分页 this this帖子也帮助了我 I want to combine them together like s
  • `>*` 选择器无法从父组件到子组件工作

    我有以下角度组件 div div
  • 复制命名空间的所有元素,不复制任何其他元素

    我们有一堆 html 页面文件 但其中包含额外的 xml 元素 全部以我们公司名称 TLA 为前缀 为我现在正在重写的旧程序提供数据和结构 表格示例
  • 从 Uri Android Lollipop 获取路径名称

    棒棒糖版本 我用过这个code从 Uri 确定文件路径 工作正常 但如果我从下载的应用程序中选择文件 从 URI 获取真实路径 API 19功能对我不起作用 例如 本例的整个 Id 等于 document 4 并且我的应用程序崩溃了 好的
  • 如何使用 EclipseLink 和 Joda-Time 将 UTC 日期时间存储到数据库中?

    我一直在摸索以下 EclipseLink乔达时间转换器长时间存储日期时间UTC进入MySQL数据库完全没有成功 import java util Date import org eclipse persistence mappings Da
  • Html 上下索引

    使用 css 上下不等词放入 html 的任何方法 例如 或 我还需要拉丁字母 Use the
  • 从网站 URL 中删除 index.php

    我正在使用 Kohana 框架 但我认为它与这个问题无关 并且可以像这样访问页面 http www example com articles http www example com index php articles 现在 根据经验 我
  • 使用 Matplotlib 进行选择性模式 imshow

    有没有办法将自定义图案放入 imshow 图表上的选定区域 准确地说 我需要做到这一点 除了携带数字数据的彩色方块之外 我还在其他方块中使用不同的图案来指示实验的不同故障模式 并且还生成一个解释这些含义的密钥 不同的模式 有用的图案的一个例