Python 中的 2D 网格数据可视化

2024-01-04

我需要可视化一些数据。它是基本的二维网格,其中每个单元格都有浮点值。我知道如何在 OpenCV 中为值分配颜色并绘制网格。但这里的要点是,值太多了,所以几乎不可能做到这一点。我正在寻找一些可以使用渐变的方法。例如,值 -5.0 将表示为蓝色,0 - 黑色,+5.0 将表示为红色。有没有办法在Python中做到这一点?

这是我正在谈论的示例数据

        A       B       C        D
A    -1.045    2.0     3.5    -4.890
B    -5.678    3.2     2.89    5.78

Matplotlib http://matplotlib.sourceforge.net/users/image_tutorial.htmlimshow绘制数组的方法:

import matplotlib as mpl
from matplotlib import pyplot
import numpy as np

# make values from -5 to 5, for this example
zvals = np.random.rand(100,100)*10-5

# make a color map of fixed colors
cmap = mpl.colors.ListedColormap(['blue','black','red'])
bounds=[-6,-2,2,6]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)

# tell imshow about color map so that only set colors are used
img = pyplot.imshow(zvals,interpolation='nearest',
                    cmap = cmap,norm=norm)

# make a color bar
pyplot.colorbar(img,cmap=cmap,
                norm=norm,boundaries=bounds,ticks=[-5,0,5])

pyplot.show()

它看起来是这样的:

颜色条设置的详细信息取自 matplotlib 示例:colorbar_only.py。 http://matplotlib.sourceforge.net/examples/api/colorbar_only.html它解释了数量boundaries需要比颜色数大一。

EDIT

你应该note http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.imshow, that imshow接受origin关键字,设置第一个点的分配位置。默认值为“左上角”,这就是为什么在我发布的图中,y 轴在左上角为 0,在左下角为 99(未显示)。另一种方法是设置origin="lower",以便第一个点绘制在左下角。

EDIT 2

如果您想要渐变而不是离散颜色图,请通过以下方式制作颜色图线性插值 http://matplotlib.sourceforge.net/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap.from_list通过一系列的颜色:

fig = pyplot.figure(2)

cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_colormap',
                                           ['blue','black','red'],
                                           256)

img2 = pyplot.imshow(zvals,interpolation='nearest',
                    cmap = cmap2,
                    origin='lower')

pyplot.colorbar(img2,cmap=cmap2)

fig.savefig("image2.png")

This produces: enter image description here

EDIT 3

添加网格,如下所示example http://matplotlib.sourceforge.net/examples/pylab_examples/axes_props.html, 使用grid方法。将网格颜色设置为“白色”与颜色图使用的颜色配合良好(即默认的黑色显示效果不佳)。

pyplot.grid(True,color='white')

Including this before the savefig call produces this plot (made using 11x11 grid for clarity): enter image description here There are many options for grid, which are described in the matplotlib documentation http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.grid. One you might be interested in is linewidth.

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

Python 中的 2D 网格数据可视化 的相关文章

随机推荐

  • 如何使用 ForkJoin 处理 http 请求序列 Angular 4

    我有一个进行两个http调用的函数 第二个http的输入取决于第一个http响应 并且我需要同时返回两个结果 我有下面的代码会引发错误 SomeMethod Observable
  • spring框架构建错误

    我正在尝试构建 spring 框架 主干和 3 0 5 版本 构建失败 错误如下所示 已采取的步骤 svn co https src springsource org svn spring framework trunk https src
  • 十进制 ToString 格式,至少给出 1 位数字,没有上限

    如何格式化decimal在 C 中 小数点后至少一位数字 但如果指定小数点后多于 1 位 则没有固定上限 5 gt 5 0 5 1 gt 5 1 5 122 gt 5 122 10 235544545 gt 10 235544545 Use
  • 调试器和可执行文件之间的命令行参数列表差异

    今天晚上我在某个敏感部位被它咬伤了 希望得到一些澄清 正如卡尔菲利普所说这个问题 https stackoverflow com questions 5891838 line counting and abberant results 58
  • 无需点击即可触发 Inkwell

    我正在尝试触发Inkwell小部件 无需实际点击它 我不确定如何解决这个问题 因为文档中没有提到它 所以目标是激活onTap并显示由Inkwell有任何想法吗 如果你像我一样多年后来到这里 正如中所回答的这个问题 https stackov
  • json_decode 问题 - 语法错误,格式错误的 JSON

    我从 php 收到一个 json 数组 作为 PHP 中curl exec 的返回 第一个 json PHP gt python 返回另一个 json 并且由于语法错误而解码失败 一段API代码 if GET url tomorrowdat
  • Dagger2 未生成 Dagger* 类

    正如标题所示 Dagger2 没有为我的 Android 项目生成 Dagger 前缀类 我查看了我能找到的所有其他类似帖子 但没有任何帮助 我正在尝试将其添加到现有项目中 并且在使其与数据绑定良好配合时遇到了一些初始问题 但我似乎已经解决
  • 用于社交网络的 Django [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我知道这是一个相对广泛的问题 但是 Django 是否足够强大来构建社交网络 我主要关心性能 速度 例如 对于一个用户群较小 它有哪些潜在的弱点
  • 旋转 div 元素

    是否可以使用 Javascript 而不是使用 HTML 5 来旋转 div 元素 如果是这样 我应该设置 更改元素的哪些属性以使其旋转 即 div 什么 PS 当我说旋转时 我的意思是绕轴旋转图像 而不是每 x 毫秒显示不同的图像旋转 老
  • 错误:无法解决:运行时

    所以我的项目昨天工作正常 今天我尝试打开它 但它给了我这个错误 非常感谢帮助 我尝试搜索很长时间来了解问题所在 但似乎所有答案都不适合我 错误 无法解决 运行时 打开文件 这是 build gradle Project 文件 Top lev
  • 获取新事件的默认日历时出错 - Swift

    我在使用 Swift 时尝试在 iOS 的日历应用程序上创建新事件时遇到问题 这是我到目前为止所拥有的 func addToCal let eventStore EKEventStore eventStore requestAccessTo
  • 如何解决 Ionic Vue 方法中嵌套范围内定义“this”时的 ESLint 错误

    我有一个 Ionic Vue 应用程序 它使用slides组件在每次转换时修改响应属性 相关代码是这样的
  • pyomo 生成具有大量约束的模型的性能

    我对 Pyomo 生成具有大量约束和变量 大约 10e6 的 OR 模型的性能感兴趣 我目前正在使用 GAMS 来启动优化 但我想使用不同的 python 功能 因此使用 Pyomo 来生成模型 我做了一些测试 显然当我编写模型时 每次实例
  • 使用 JDBC 将 null 插入到整数列

    我有一个 sql 列PROTOCOL 它可以为空并且对表有约束 PROTOCOL IN 1 2 3 另外 由于它可以为空 我想将空值设置并获取到表中 但我做不到setInt and getInt为空 如何使用 JDBC 将列的 null 设
  • FullCalendar - 更改事件(约会、日记条目)高度

    我正在尝试更改 FullCalendar 中事件 约会 的高度 我遵循了这个答案中的建议如何在 FullCalendar 中编辑事件的宽度 https stackoverflow com questions 3389552 how to e
  • 如何查看 Javascript 对象的原型链?

    给出以下代码 function a function b b prototype new a var b1 new b 我们可以保持这样a已添加到b的原型链 伟大的 并且 以下所有内容均属实 b1 instanceof b b1 insta
  • 当我用 @login_required 装饰视图时,如何匹配 ?next=/nextpage/ 值?

    当我使用 login required 装饰 django 中的视图时 如何匹配 next nextpage 值 它不以 标准方式 工作 在 url py 中通过正则表达式匹配 为什么它不按标准方式工作 在 urls py 中 r logi
  • 提高稀疏矩阵的能力

    我有一个 10001 行 10001 列 有很多 0 的稀疏矩阵 我正在尝试提高这个稀疏矩阵的功效 i e A 1 1 1 0 AS sparse csr matrix A AS def matrixMul AS n if n lt 1 r
  • ARKit可以显示WKWebview吗?

    尝试用 ARKit 来显示 WKWebView 但我得到的只是一个显示背景但没有前景的页面 不过页面可以滚动 我附上了苹果网页的截图 这是代码 DispatchQueue main async let webView WKWebView f
  • Python 中的 2D 网格数据可视化

    我需要可视化一些数据 它是基本的二维网格 其中每个单元格都有浮点值 我知道如何在 OpenCV 中为值分配颜色并绘制网格 但这里的要点是 值太多了 所以几乎不可能做到这一点 我正在寻找一些可以使用渐变的方法 例如 值 5 0 将表示为蓝色