【发布时间】:2017-07-26 05:03:56
【问题描述】:
我正在尝试制作如下图所示的情节(source of image): 我说的是右侧面板中的情节,尽管两个面板之间存在一些相关性:颜色条。
只是为了让你知道这是关于什么的:对于 V 的每个值,我找到依赖于 V 的 NxN 矩阵的所有 N 个特征值和特征向量。特征值(这是一个能量)标记为 E,并在右侧面板中绘制为V 的函数。颜色条上的值(我们称之为 IPR)是根据特征向量计算的,并定义右侧面板中点的颜色。所以你会看到颜色和值 E 是相关的,这就是为什么这样的情节非常好。对于你们中间的物理学家来说,这是一个能带结构,它是某个势强度 V 的函数,而 IPR 说明了哈密顿量相应本征态的局域化程度。
现在我的问题是如何以一种很好/有效的方式在 matplotlib/pyplot 中生成这样的图。当然可以想到一种“非pythonian”的方式(首先计算所有V的数据,找到IPR的最小/最大值来定义IPR和颜色之间的双射,然后经过两个循环(一个用于所有V的值,一个用于固定 V 处的所有 N 个特征值/-向量),并使用一些 matplotlib 方法为绘图的每个点获取颜色(我假设有这样的方法,即使我无法使用 Google 找到一个))。如果您仔细观察,您可能会猜到这正是图像中所做的。如果这是你们中的一个人能想到的唯一方法,如果有人能让我知道 matplotlib 方法是什么,我会很高兴。 最好的解决方案(出于我的目的)如果不是制作点,而是可以制作 N 条线并且仍然在其上放置一个色标,这样您仍然可以识别图中的波段(在图像中您会看到垂直的点线,但我更喜欢通常线图中的“垂直”线)但我知道这可能是不可能的。
提前致谢!
【问题讨论】:
标签: python matplotlib colors