Python 中的标量场可视化

2024-04-13

我需要在 Python 中可视化几个重叠的标量场。我发现mayavi图书馆做这种情节。问题是我不明白如何为标量字段自定义颜色图。我的想法是为每个字段设置一种颜色的阴影。我尝试采用一个例子 http://docs.enthought.com/mayavi/mayavi/auto/example_custom_colormap.html#example-custom-colormap,但它不起作用。这是我使用红色阴影可视化标量场的代码:

import numpy as np
from mayavi import mlab

x, y, z = np.ogrid[-10:10:20j, -10:10:20j, -10:10:20j]
s = np.sin(x*y*z)/(x*y*z)

src = mlab.pipeline.scalar_field(s)
volume = mlab.pipeline.volume(src)

lut = np.zeros((256, 4), np.uint8)
lut[:,-1] = 255
lut[:, 0] = np.linspace(0, 255, 256)

volume.module_manager.scalar_lut_manager.lut.table = lut

mlab.draw()
mlab.view(40, 85)

mlab.show()

然而,输出图始终带有标准的蓝红查找表。


我找不到使用的解决方案lut_manager,但是下面的解决方案如下这个github回复 https://github.com/enthought/mayavi/issues/371#issuecomment-235479243对我有用。

import numpy as np
from mayavi import mlab
# import color transfer function from vtk
from tvtk.util import ctf
# import matlab colormaps
from matplotlib.pyplot import cm

x, y, z = np.ogrid[-10:10:20j, -10:10:20j, -10:10:20j]
s = np.sin(x*y*z)/(x*y*z)

src = mlab.pipeline.scalar_field(s)
volume = mlab.pipeline.volume(src)

# save the color transfer function of the current volume
c = ctf.save_ctfs(volume._volume_property)
# change the alpha channel as needed
c['alpha'][1][1] = 0.5
# change the color points to another color scheme
# in this case 'magma'
c['rgb']=[[a[0],a[1],a[2],cm.magma.colors.index(a)/255] for a in cm.magma.colors]
# load the new color transfer function
ctf.load_ctfs(c, volume._volume_property)
# signal for update
volume.update_ctf = True

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

Python 中的标量场可视化 的相关文章

随机推荐

  • 在 Firefox 中更好地查看 XML

    当您在 Firefox 中查看简单的 XML 文档时 它会进入标准 XML 显示模式 您可以在其中折叠子树等 但它的功能非常有限 没有什么比 全部展开 和 全部折叠 按钮更方便的了 页面顶部有一条烦人的 此 XML 文件似乎没有任何与之关联
  • 如何使 cassandra 中的值独一无二

    我想在 cassandra 中进行唯一约束 因为我希望我的专栏中的所有值在我的专栏系列中都是唯一的 前任 名字 拉胡尔 电话123 地址 abc 现在我希望我这一行没有等于 rahul 123 和 abc 的值在 datastax 上搜索时
  • 如何使用地理编码器计算两点之间的距离(以公里为单位)

    我正在尝试找出一种使用地理编码器显示地图上两点之间的计算距离的方法 我的表中有 start address 和 destination address 在我看来是我要求的 我的模型如下所示 class Ride lt ActiveRecor
  • 为什么 java.util.Properties 实现 Map 而不是 Map

    The java util Properties类旨在表示一个映射 其中键和值都是字符串 这是因为Properties对象用于读取 properties文件 它们是文本文件 那么 为什么在Java 5中他们要改造这个类来实现Map
  • Istio 目标规则子集不起作用

    我的 istio 目标规则不起作用 在 kiali 中出现以下错误 VirtualService and destination rule for echo service 我的召唤echo svc 8080 and echo svc 80
  • 如何使用 querySelector on 按名称选择输入元素?

    我最近在该网站上收到了有关使用的帮助querySelector在表单输入上 例如select但当我采取
  • 在 Android Studio 中注释/取消注释所选文本的键盘快捷键

    如何使用控制组合键注释掉 IDE 中选定的几行文本 I thought that Ctrl Alt C was the correct sequence but that s not working To comment uncomment
  • 如何从 javax.lang.model.VariableElement 获取参数类型

    我正在尝试使用 Java 6 元模型 API 查找方法的参数类型 如果类型是枚举 我还想知道它的所有类型的枚举常量名称 这是我到目前为止所得到的 for Element member members if member getKind El
  • 将 NSArray 写回 plist

    我有一个具有以下格式的 plist 我是这样读的 NSString errorDesc nil NSPropertyListFormat format NSString path NSBundle mainBundle pathForRes
  • 确定组件的所有者何时加载

    我创建了一个包含自定义组件的 WinForms 应用程序 该组件需要在启动时触发其事件之一 但是在调用组件的构造函数时 所有事件处理程序仍然为空 我需要的是一个事件 告诉我拥有该组件的窗口已加载并且所有事件处理程序已设置 然而 组件似乎没有
  • 从 GitHub 拉取请求获取评论列表

    根据http developer github com v3 pulls comments list comments on a pull request http developer github com v3 pulls comment
  • 泛型错误:预期类型参数,找到结构

    我开始了一个新项目 我希望尽可能模块化 我的意思是我希望将来能够用其他部件替换某些部件 这似乎是一个完美的用途traits 目前我有这个代码 mod parser mod renderer mod renderers use parser
  • 我的 Django URL 没有显示破折号

    我正在尝试找出一个与domain com about us 和domain com home 匹配的网址 我有一个网址正则表达式 P
  • JavaScript 无法在脚本标签中工作? [复制]

    这个问题在这里已经有答案了 我需要知道为什么要这样做 因为我在网站的脚本标签中使用了 javascript 但它不起作用 为什么我的javascript在脚本标签中不起作用 切换不会切换 http jsfiddle net J7L4k 2
  • 如何获取 asp.net c# 的发布数据[重复]

    这个问题在这里已经有答案了
  • WiX 在构建服务器上失败

    我有一个使用 WiX 的项目 它在我的本地计算机上运行良好 但是当我发布到构建服务器时 构建会因以下内容而崩溃 来自 MSBuild 日志 Using HeatDirectory task from assembly C Program F
  • 为什么标准没有提供擦除删除惯用语的便利帮助程序?

    从 STL 中的集合中删除项目需要一种经常使用的技术 该技术已成为一种习惯用法 擦除 删除 惯用语 https en wikipedia org wiki Erase E2 80 93remove idiom 这个习语最常见的用法之一是删除
  • 如何找出当前页面上的光标位置?

    我向页面添加了一堆内容 例如document add p 然后我使用文档添加一个填充两列的表格here http itextpdf com examples iia php id 91 在这个过程中 我使用 column setSimple
  • retrbinary 期间线程化“NOOP”命令

    我编写了一个 FTP 脚本 遗憾的是该脚本必须处理位于防火墙后面的服务器 ISP 也会很早就切断我的控制连接 无论我在防火墙的任一侧设置什么样的超时设置 我最终做出了两个选择 1 在 retrbinary 命令中分叉代码 以便下载完成时每
  • Python 中的标量场可视化

    我需要在 Python 中可视化几个重叠的标量场 我发现mayavi图书馆做这种情节 问题是我不明白如何为标量字段自定义颜色图 我的想法是为每个字段设置一种颜色的阴影 我尝试采用一个例子 http docs enthought com ma