小编urq*_*iza的帖子

如何将依赖于索引的函数应用于 numpy ndarray?

因此 numpy ndarrays 非常方便,因为您可以为任何一维函数 f 和任何 ndarray A 输入 f(A) ,它将按元素应用 f 。有人告诉我,这也是将函数应用于 ndarray 并避免 for 循环的一种非常有效的方法。避免 for 循环,这是我被告知的。

事实证明,现在我需要应用一个函数 f(A),它不仅是一维的,而且需要了解每个元素的索引元组,以便为​​每个元素返回正确的值。在这些情况下,有没有办法避免使用 for 循环或显式递归并继续使用 ndarrays 上的直接函数应用程序?还是我别无选择?

numpy-ndarray

5
推荐指数
1
解决办法
1533
查看次数

如何正确地将透视添加到表示分子的 Gnuplot 3D 连接点云?

我不了解你们,但我喜欢一些 Gnuplot。如果使用得当,该软件会生成美丽的图像,其简单性和清晰度令人着迷,我非常喜欢。

没有什么特别的原因,有一天,我发现自己在想,如果我能创作出如此卡通魅力和充满活力的清晰度的图片来进入我的论文和个人科学日记该多好。因此,我首先进入了一个糟糕的项目,编写一个基于 gnuplot 的分子可视化工具。

到目前为止,它是为我的特定类型的分子量身定制的。基本上是共价键合的原子形成配体,配体本身通过配位键与一些中心金属离子相互作用。我已经成功地得出了一个非常好的工作概念,如下图所示。

[插入用 GNUPLOT 制作的复杂图片]

其中,虚线表示与铕金属离子的配位键,颜色为浅青色,实线是原子之间的共价键。红色是氧,蓝色是氮,白色是氢,灰色是碳。到目前为止一切都很好,看起来相当可靠并且非常符合我想要的。

那么我该怎么做呢,我听到你问?嗯,实际上这很简单。我一次只策划一件事情。首先,我绘制虚线的连接模式,如下所示:

[虚线图像]

然后我画出共价键:

[共价键]

每个步骤都需要一个或多个单独的文件。每个配体的连接性存储在单独的“bondfile”中,并且点状连接性模式本身位于一个文件中。原子的位置及其颜色被放置在另一个文件中。一个用于每个配体,一个用于中心金属。

然后我有一个单独的文件,用于记录金属和每个配体的原子,我在其中说明它们的颜色。事实上,原子放置在黑点上,这使得点周围具有迷人的黑色布局,否则它们就没有轮廓线。

问题

当您想要旋转复合体以获得更好的角度来保存到图片中时,就会出现问题。为了说明问题,我将用单个配体的图片来展示它的实际情况。我们以联吡啶为例(带有氮原子的,有两个)

所以这是我认为最佳角度的联吡啶:

[插入联吡啶静止不动的图片]

现在假设我们沿着下图所示的轴转动联吡啶。

[联吡啶与旋转轴的图片]

现在问题就显现出来了。因为一些应该位于平面后面的原子实际上位于整个物体的前面,这表明 gnuplot 实际上没有透视图。或者,至少,它确实有,但我使用不正确。

[吡啶旋转图片]

到目前为止,一切都很好。我没想到它会自动透视,因为这不是它最初设计的目的。然而,这意味着 gnuplot “splot” 会进行某种程度虚假的 3D 绘图,并且空间中点的实际相对位置并不重要。

所以我的问题是,对于所有 gnuplot/perspective 专家来说:有没有办法巧妙地规避这个限制?

我对任何方法都感兴趣,无论它有多复杂,只要它在 gnuplot 本身的限制内可行即可。

gnuplot chemistry

4
推荐指数
1
解决办法
1497
查看次数

标签 统计

chemistry ×1

gnuplot ×1

numpy-ndarray ×1