小编cil*_*lix的帖子

没有视觉扭曲的循环色图用于相角图?

我正在寻找一个好的圆形/循环色图来表示相位角信息(其中值被限制在[0,2π]范围内,其中0和2π表示相同的相位角).

背景:我想通过绘制功率谱密度和整个系统振荡的相对相位信息来可视化正常模式.

我承认以前我使用'rainbow'色图作为功率图,'hsv'色图用于相图(见[1]).然而,由于缺乏感知线性和排序[2] [3],因此极不鼓励使用彩虹色图.所以我切换到了'coolwarm'色彩图,以获得我非常喜欢的功率图.不幸的是,'hsv'色彩图似乎引入了与'彩虹'贴图相同的视觉扭曲(并且它与'coolwarm'贴图也不太相配,因为它看起来有点丑陋和华而不实) .

有没有人对我可以用于相位图的替代圆形色图有一个很好的建议?

要求:

  • 它需要是圆形的,因此值0和2π由相同的颜色表示.

  • 它不应该引入任何视觉扭曲; 特别是,它应该是感知线性的('hsv'色图似乎不是).我不认为感知排序对于阶段信息来说是如此重要,但它当然不会造成任何伤害.

  • 与"coolwarm"色彩图结合使用时,它应具有视觉吸引力.但是,我并没有把它设置为'coolwarm',如果有另一对漂亮的色彩图可视化幅度和相位信息,我很乐意考虑其他选项.

如果色图可用(或可以轻松创建)以在matplotlib中使用,则可获得奖励积分.

非常感谢任何建议!

[1] http://matplotlib.org/examples/color/colormaps_reference.html

[2] http://www.renci.org/~borland/pdfs/RainbowColorMap_VisViewpoints.pdf

[3] http://medvis.org/2012/08/21/rainbow-colormaps-what-are-they-good-for-absolutely-nothing/

python plot matplotlib colormap

33
推荐指数
6
解决办法
9118
查看次数

计算 scipy LinearOperator 的特征值时出错:“gmres 未收敛”

我正在尝试用 Scipy 解决一个大特征值问题,其中矩阵A很密集,但我可以计算它对向量的作用,而无需A显式组装。因此,为了避免矩阵 A 变大时出现内存问题,我想使用稀疏求解器scipy.sparse.linalg.eigsLinearOperator实现此操作。

应用于eigs显式 numpy 数组A效果很好。但是,如果我改为应用eigsa LinearOperator,则迭代求解器无法收敛。即使matvec的方法LinearOperator只是与给定矩阵 的矩阵向量乘法,情况也是如此A

下面附有一个说明失败的最小示例(我使用移位反转模式,因为我对最小的几个特征值感兴趣)。A这可以很好地计算随机矩阵的特征值,但当应用于LinearOperator直接从 转换而来的a 时会失败A。我尝试摆弄迭代求解器的参数(v0ncvmaxiter)但无济于事。

我错过了一些明显的东西吗?有办法让这项工作发挥作用吗?任何建议将不胜感激。非常感谢!

编辑:我应该澄清“让这个工作”的意思(谢谢,迪特里希)。下面的示例使用随机矩阵进行说明。然而,在我的应用程序中,我知道特征值几乎是纯虚的(或者如果我将矩阵乘以 ,则几乎是纯实的1j)。我对 10-20 个最小幅度特征值感兴趣,但如果我指定 ,该算法表现不佳(即,即使对于较小的矩阵大小也不会停止)which='SM'。因此,我通过传递参数来使用移位反转模式sigma=0.0, which='LM'。我很乐意尝试不同的方法,只要它允许我计算一堆最小幅度的特征值。

from scipy.sparse.linalg import eigs, LinearOperator, aslinearoperator
import numpy as np

# Set a seed for reproducibility
np.random.seed(0)

# Size of …
Run Code Online (Sandbox Code Playgroud)

numpy linear-algebra scipy eigenvalue

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

标签 统计

colormap ×1

eigenvalue ×1

linear-algebra ×1

matplotlib ×1

numpy ×1

plot ×1

python ×1

scipy ×1