Questions tagged «visualization»

有关图形和显示数字数据的问题

14
建议使用哪些软件和工作流程来发布科学数据和图表?
从简单绘制几个数据点到创建具有详细样式,数学排版和“专业质量”的出版物级图形,哪种软件提供了良好的工作流程? 这与David的问题有关(哪些属性使图形具有专业品质?),但重点不是属性,而是软件或通用的工作流程。我对一些程序(Gnuplot,Origin,Matplotlib,TikZ / PGFplot,Qtiplot)有肤浅的经验,但是同时进行数据分析和漂亮的数字似乎很难做到。 是否有一些软件可以做到这一点,还是我应该更深入地研究其中一个软件包? 编辑:我当前的工作流是不同组件的混合,它们或多或少地协同工作,但总的来说并不能真正有效,我认为这对大学实验室的许多科学家来说都是很典型的。通常,它是一条从实验到发布的链条,如下所示: 获取实验数据(通常为ASCII形式,但布局不同,例如标题,注释,列数) 快速绘制数据,以检查20年前编写的Origin,Gnuplot或奥术绘图程序是否正常。 数据的更详细分析:减去背景贡献,分析依赖性和相关性,符合理论模型。许多科学家使用Origin来完成这项任务,一些Matlab和Python / Scipy / Numpy的使用正在增加。 创建专业人物,这涉及调整期刊指南,数学排版和常规编辑。目前,我为此使用Origin,但是它有一些缺点(仅尝试获得精确为0.5pt的线宽是不可能的)。对于组合/抛光图形,我主要使用Adobe Illustrator,因为它可以很好地处理PDF文档的导入/导出,但是我宁愿不必为每个图执行两个步骤。 我添加了一个示例,最后看起来是什么样的(因为大多数情况下都是通过手工更改来创建的,这很痛苦,并且提供界面(例如,为所有元素设置线宽的界面的任何内容都会很不错)):

6
什么属性使图形“专业品质”?
我听说有人说,ORIGIN制作的地块看起来看起来像是光滑且“专业的”,而Mathematica制作的地块则看起来并不专业。但是,大多数绘图创建程序都是可配置的,因此可以断定,通过正确设置刻度位置和标签,字体和颜色选择,标签对齐等设置,我应该能够使用Mathematica制作图形/ matplotlib / Gnuplot / etc。看起来和ORIGIN的产品一样好。但是,在这种情况下,一个人物“专业”意味着什么? 换句话说,如果我的目标是创造出可能看起来最好的图形以包含在科学论文中,那么通常建议针对该目标选择哪些设计选择?显然,人们必须选择适当的那种情节,如柱状图与散点图和线性对数刻度,但这些选择,我们总是想到无论哪个绘图程序,我们正在使用。我对我们通常不会考虑的事物更感兴趣,这些事物通常是根据某些绘图程序的默认设置进行设置的,但是可以更改它们以改善图形的外观。

6
可视化非常大的链接图
我正在寻找一种可视化非常大的有向链接图的工具。我目前有约200万个节点,边缘约有1000万个。我尝试了几种不同的方法,但是大多数方法甚至要花费数小时才能完成10万个节点图 我尝试过的工作: 我在gephi中度过了一天,但是添加了8万个节点大约需要一个小时,并且该应用程序几乎变得毫无用处。 有什么建议么? 交互式可视化将是一个加号。

4
(自适应?)函数绘图的算法
我正在寻找算法来绘制可能具有或不具有奇异性的函数的标准2d图形。目的是编写一个“ Mini-CAS”,所以我对功能的类型没有先验知识,用户想画图。 这个问题很老,所以我想在文献中一定有一些标准算法。有一次,我没有太多通过谷歌找到参考文献的成功。 我确实找到了一种有趣的算法,即 “ YACAS-算法集”中的一种名为“自适应函数绘图” 的算法。 简而言之: 有标准算法吗? 是否有针对已知难以绘制功能的测试套件? 有哪些有趣的论文可供阅读?


3

1
可视化不连续的Galerkin /有限元数据
我想在ParaView中可视化使用不连续Galerkin(DG)方法获得的仿真结果。与有限体积方法类似,问题域被划分为立方体形的单元(“元素”)。与有限体积方法相反,每个像元中不仅有一个解向量,而且每个像元在多个高斯积分点处都包含解。üüu\mathbf{u}üu\mathbf{u} 我的问题是,是否有人有使用ParaView / VTK有效地可视化此类数据的经验,以及您选择了哪种方法来表示VTK中的数据。我想到了几种可能的方法,但我不知道哪种方法最有前途: (1)使用体 素每个集成点使用一个体素。 Pro:所有与标准VTK非结构化单元类型一起使用的插件将继续工作,而无需进行任何更改。 缺点:由于积分点分布不均匀,因此可能难以找到顶点的正确位置。同样,由于DG框架允许使用不连续的溶液,因此可以在细胞表面上定义两次溶液。同样,层次信息(域划分为元素,每个元素包含几个点)也会丢失。 (2)使用多 顶点每个积分点使用一个顶点。 专业:最容易实现,易于使用不同的解决方案在同一位置指定多个点。 缺点:能力来可视化数据为“细胞”丢失,加上相同的缺点如上。 (3)使用VTK正交方案 使用对正交方案的内置支持。 优点:相当简单的实现,保留了原始解决方案的所有关系和属性。 缺点:由于这是一种全新的单元格类型,因此许多(大多数)现有插件将不再起作用,可能必须重写。

4
如何计算结构相同的两个不同VTK文件中存储的两个字段之间的数值差?
假设我有两个VTK文件,它们都是结构化网格格式。结构化网格是相同的(它们具有相同的点列表,并且顺序相同),并且在每个VTK文件中都有一个字段称为“ Phi”。我想再次创建具有相同结构化网格的第三个VTK文件,并绘制一个字段,该字段是第一个VTK文件中的Phi和第二个VTK文件中的Phi之间的差异。 我知道如何手动执行此操作;我可以解析两个VTK文件中的原始文本,将数据复制到数组中,从另一个数组中减去一个数组,然后将正确格式的数据转储到新文件中。有没有更好的方法来计算此差异并将其导出到VTK?使用Python或像VisIt或Paraview这样的可视化软件中的解决方案比使用像C ++这样的编译语言更可取。 计算该差异的目的是比较用于计算PDE解的不同数值方法。由于我使用相同的软件来生成解决方案,因此我可以保证,除字段Phi外,所有数据在我生成的每个文件中都是相同的。

4
制作分子编辑器/可视化器:面向对象的程序,数据结构和分子
我是编程新手,正在尝试解决我的第一个大问题并编写我的第一个大程序。我一直在寻找可以学习的开放源代码示例,但是到目前为止,我只发现了我无法完全理解的语言代码,或者确实找到了相关但仍然相距甚远的语言来学习。我在这里采取一些概念上的步骤时遇到了麻烦。 我想制作一个简单的软件来构建,修改并稍后代表有机小分子。这主要是一种学习练习。用户可以给出一个SMILES字符串或从一组基本的起始分子中进行选择,然后可以以图形方式或通过文本输入语法在该分子上进行构建。但是,我还没有达到那种复杂程度。我什至无法完全理解如何创建类/对象来存储分子。因此,我的问题简明扼要:如何在保留所有信息级别的同时使用类/对象构建分子,以及应使用哪些数据结构作为哪些对象的属性?而且,对象可以作为其他对象的属性吗? 到目前为止,这是我的思路:我正在考虑创建一个“分子”类,然后是一个“原子”类/子类和一个“邦德”子类,也许还有一个“ FunctionalGroup”子类。这似乎是一个不错的起点,但也许我误会了OOP,这很不好。但是后来我的问题真的变得令人困惑(对我来说)。即使我拥有所有这些概念/想法/类,我仍未完全掌握表示分子所需的数据结构。原子列表将是一件好事。该列表可以是Atom对象的列表吗?我还需要一种存储连接性的方法。2D矩阵似乎是个好主意,在矩阵位置,键序为整数。 在这一点上,我开始不知所措。我到目前为止所做的一切都有意义吗?在此之上附加显示/绘图方面可能意味着我需要重写/重做许多这些事情,但是我只是想达到一个这样的程度,即我至少可以将分子与相关数据一起存储,然后访问该数据进行检查/修改。我正在考虑在Python中执行此操作,因此代码/类可能看起来像这样:http : //pastebin.com/uUi1BMzr 也许这确实是StackOverflow的编程问题,但是我认为它足够具体了。即使您仅指出我在概念上犯了错误的地方,也将不胜感激任何帮助。提前致谢。


1
四叉树和八叉树网格的可视化
对于需要自适应网格细化的应用,所谓的四叉树和八叉树网格非常有吸引力。例如,它们在Gerris和Paramesh中使用。有谁知道这种网格的良好文件格式并支持可视化软件?另请参阅Gerris常见问题解答中的此答案。我目前知道的唯一潜在候选人是VTK HyperOctree类,但是似乎几乎没有文档。 作为网格的特定示例,考虑一个稀疏的八叉树网格,该网格由框组成,每个框包含元。我目前在Visit / Paraview中的策略是:10410410^48 × 8 × 8 = 5128×8×8=5128 \times 8 \times 8=512 将网格写入为非结构化的VTK文件。对于较大的数据集,这是昂贵的,并且不会利用四叉树/八叉树的“结构化”。 将树中的相邻“框”收集到更大的块中,并编写一个块结构的网格。这涉及很多额外的代码,并且丢失了嵌入在四叉树/八叉树中的连接信息。 更新如果当前没有可行的格式可以直接编写和可视化octree网格,我将为可用于将octree编写为块结构网格的文件格式提出建议。理想情况下,此格式: 具有相对简单的定义/实现,理想情况下是开源的,并具有C / Fortran兼容性。 可以有效地处理大量的网格块(例如1000个或更多)。 允许轻松指定网格块的连通性,尤其是在细化边界处。 我目前正在为此目的使用Silo,但我正在寻找在上述三个方面得分更高的东西(更小,更快,更简单)。

3
可视化事件数据以搜索性能问题的方式
我正在尝试使用高度异步的通信模式来优化MPI应用程序。每个等级都有要计算的事物的列表,如果输入或输出位于不同等级上,则根据需要发送消息。此外,每个级别都有线程(当前有一个通信线程和5个工作线程)。 我在代码的不同性能关键部分使用计时器来检测代码,这为我提供了每个线程的(开始,结束,类型)三元组列表。以明显的方式绘制,将时间作为水平轴,将等级和线程作为垂直,并用颜色表示每个线程当前正在执行的操作,我得到了这样的图像,其中有16个等级的线程,每个线程有6个线程: 我的问题是:还有什么其他可视化此数据的方式可以帮助解决性能问题?在对异步应用程序进行性能分析时,是否有人喜欢使用他们喜欢的绘图类型? 该数据集的局限性在于它不知道数据流的结构,但是在尝试收集更复杂的数据之前,我想从中获得尽可能多的洞察力。 如果有人要环顾四周(未通过正常路线上传),则此处为未压缩的图像。不幸的是,即使我相信它是有效的,Firefox也不会接受它,可能是因为它太大了。

3
二阶张量场可视化软件
张量可视化软件是否有概述? 我个人的喜好是: 该软件是免费的,有据可查并提供针对不同物理二阶(或更高阶)张量场的可视化技术。 我会感兴趣的一些模块 超流线(特征向量积分法) 测地线作为方向,而不是特征向量 拓扑方法(例如,处理相等的特征值,即退化点,提取有限的Lupynov指数) 张量椭球 基于纹理的可视化(HyperLIC,基于物理的方法) 处理非对称张量场(将张量场分解为对称和反对称的部分,并重新胶合所得的可视化效果,或直接方法) 根据张量场的物理属性,需要使用不同的方法来可视化数据。 我知道有关Mayavi的知识,但是几乎没有关于张量模块的文档,并且该模块仅限于超流线的可视化(单数)。GUI有问题,脚本选项似乎受到限制。 张量场的可视化似乎是非常令人沮丧的选择。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.