Octave (Matlab) 中复杂函数的域着色(色轮)图

2023-12-03

我明白那个域或色轮绘图是复杂函数的典型特征。

令人难以置信的是,我无法在网络搜索中找到超过一百万个返回来轻松地让我在维基百科中复制一些艺术作品:

enter image description here

有这个在线资源再现黑色零的图 - 一点也不坏...但是,我想在 Octave 中请求一些简单的带注释的代码来生成复数函数的彩色图。

这是一个例子:

domain plotting of complex functions

I see here绘制复杂函数的代码。然而,它使用了不同的技术,高度代表函数图像的 Re 部分,颜色代表虚部:

Example of Matlab solution to visualize 4D data


彼得·科维西有一些很棒的彩色地图。他提供了一个MATLAB 函数,称为colorcet,我们可以在这里使用它来获取表示相位所需的循环颜色图。在运行下面的代码之前下载此函数。

让我们从创建一个复值测试函数开始f,其中幅度从中心开始增加,相位等于围绕中心的角度。很像您展示的示例:

% A test function
[xx,yy] = meshgrid(-128:128,-128:128);
z = xx + yy*1i;
f = z;

接下来,我们将获取它的相位,将其转换为索引colorcetC2 颜色图(循环),最后将其重塑回原始函数的形状。out这里有3个维度,前两个是原始维度,最后一个是RGB。imshow将这样的 3D 矩阵显示为彩色图像。

% Create a color image according to phase
cm = colorcet('C2');
phase = floor((angle(f) + pi) * ((size(cm,1)-1e-6) / (2*pi))) + 1;
out = cm(phase,:);
out = reshape(out,[size(f),3]);

最后一部分是使用以下值的大小来调制这些颜色的强度:f。为了使 2 的幂不连续,我们取以 2 为底的对数,应用模运算,然后再次计算 2 的幂。一个简单的乘法out必要时降低颜色强度:

% Compute the intensity, with discontinuities for |f|=2^n
magnitude = 0.5 * 2.^mod(log2(abs(f)),1);
out = out .* magnitude;

最后一个乘法在 Octave 和更高版本的 MATLAB 中有效。对于旧版本的 MATLAB,您需要使用bsxfun反而:

out = bsxfun(@times,out,magnitude);

最后,使用显示imshow:

% Display
imshow(out)

output of code above

请注意,此处的颜色比示例中的颜色更柔和。这colorcet彩色地图在感知上是统一的。这意味着相同的角度变化会导致相同的颜色感知变化。例如,在您发布的示例中,黄色是一条非常窄、明亮的带。这样的带会导致函数中某些特征的错误突出显示,而这些特征可能根本不相关。感知上均匀的颜色图对于正确解释数据非常重要。另请注意,此特定颜色图在四个基本方向上具有易于命名的颜色(紫色、蓝色、绿色、黄色)。纯实值是绿色(正)或紫色(负),纯虚值是蓝色(正)或黄色(负)。

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

Octave (Matlab) 中复杂函数的域着色(色轮)图 的相关文章

  • R 中的金字塔图

    对于示例数据集 我按国家 地区创建了一个金字塔图 显示人口中男性和女性超重的水平 library plotrix xy males overweight lt c 23 2 33 5 43 6 33 6 43 5 43 5 43 9 33
  • 如何在seaborn中将matplotlib颜色图设置为调色板

    如何将 matplotlib 颜色图设置为 seaborn 中的调色板 有一个类似的问题here https stackoverflow com questions 57373881 converting a matplotlib colo
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • 使用ggplot2绘制多条曲线

    假设我有一个数据框coefs其中每行包含曲线的模型系数 coefs lt structure list a1 c 1 22228259789383 1 2064168157394 1 09555089661994 0 94394743347
  • 一维高斯分布函数的绘图

    如何使用均值和标准差参数值 1 1 0 2 和 2 3 绘制一维高斯分布函数图 我是使用 Python 编程的新手 先感谢您 凭借着优秀的matplotlib and numpy包 from matplotlib import pyplot
  • 如何有效地将多个 rgl 图连接成一个图?

    我用以下命令制作了 3D 绘图rgl打包我的数据的每个因子级别并将它们保存为 png 我的数据有 30 个不同的级别 从而产生了 30 个不同的图像文件 现在我想将这些 png 合并成一个图 我会这样显示它们 下面的例子说明了我想做的事情
  • R 在设置宽度和高度的 PDF 中缩放绘图元素

    尽管发送到 PDF 的 R 图可以在插图或页面布局软件中随意重新缩放 但科学期刊通常坚持提供的图具有特定的尺寸 是否可以直接在 R 中在给定 PDF 大小内缩放所有绘图元素的大小 require ggplot2 p lt qplot dat
  • python 中 matlibplot 中散点图的缩放轴

    我正在使用 matlibplot 进行数据可视化 我的绘图共有 6502 个数据值 运行良好 但值接近且密集 例如 我的 y 轴值范围在 3 到 10 之间 我需要清楚地获取它们之间的每个点 即像 9 2 和 9 8 这样的值至少要以 1
  • pyplot,为什么x轴不显示?

    我正在尝试根据日期绘制一些值 但是 不幸的是我没有在 x 轴上获得任何值 我觉得这可能有两个因素造成 这些值存储为 日期 因此使过程变得复杂 由于日期将在 x 轴上占据太多空间 因此它变得太混乱 因此这就是为什么我只看到一条黑线 请让我知道
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 使用healpy通过HEALPix像素化制作2D直方图

    数据是天空中物体的坐标 例如如下 import pylab as plt import numpy as np l np random uniform 180 180 2000 b np random uniform 90 90 2000
  • 为绘图制作 2D 图例 - 双变量分区统计图

    我一直在玩双变量 choropleth 地图 并且一直在如何创建类似于 2d 图例的问题上陷入困境约书亚 史蒂文斯 http www joshuastevens net cartography make a bivariate chorop
  • Matlab:如何在没有颜色分级的情况下绘图?

    我的朋友制作了一个脚本来处理大量数据并绘制各种图表 但是当他运行脚本时 图表根据图例具有不同的颜色 当我这样做时 所有图表都相似 颜色渐变从黑色到红色的 见图 为什么不同以及如何获得不同颜色的图表 带有颜色分级图的 2D 绘图 figure
  • Python quiver 和 pcolormesh 没有完全正确排列

    我试图在地图上用风速的 pcolormesh 覆盖风场的颤动图 from mpl toolkits basemap import Basemap from pylab import lonMin 115 5 lonMax 124 5 lat
  • 您可以将表格绘制到 ggmap 上,类似于非笛卡尔坐标的annotation_custom方法吗

    我一直在玩 ggplot2 并发现在 r 中 ggplot 的绘图区域内添加表格 https stackoverflow com questions 12318120 adding table within the plotting reg
  • 在gnuplot中绘制两点之间的线

    我有一个 csv 文件 其格式如下 有四列 作为MWE xcoord1 ycoord1 xcoord2 ycoord2 0 1 0 2 0 4 0 3 0 5 0 3 0 7 0 5 我想从每个xcoord1 ycoord1 to xcoo
  • 绘图不适合 R 窗口

    我正在使用metaR 中的包对比例进行荟萃分析 我的分析中有大约一百项研究 当我打字时forest result 创建我的森林图 它可以工作 但图形在顶部和底部被切掉 无论我做什么 它都不适合绘图窗口 我对如何解决这个问题感到困惑 有任何想
  • 在seaborn中使用FacetGrid为所有方面重复x轴标签

    我正在与FacetGrid给出的例子here https seaborn pydata org examples kde ridgeplot html结果如下图所示 在我的数据集中 有相当多的图 如果有x每个面都重复轴标签 而不仅仅是在底部
  • 为seaborn lmplot添加文本注释

    我正在尝试为聚类结果创建seaborn lmplot 数据示例如下所示 ID CA IP clusters 38 10 3 5 6 1 59 10 4 6 1 0 64 10 0 6 6 1 35 10 6 5 6 1 54 10 6 5

随机推荐

  • 如何在matlab中绘制非线性微分方程

    Dx y Dy k y x 3 9 8 cos t inits x 0 0 y 0 0 这些是我想要绘制的微分方程 首先 我尝试求解微分方程 然后绘制图形 Dsolve Dx y Dy k y x 3 9 8 cos t inits 然而
  • android openFileOutput 有什么问题?

    我正在尝试使用 openFileOutput 函数 但它无法编译并且无法识别该函数 我使用的是android sdk 1 6 这是sdk的问题吗 这是参数问题吗 import java io FileOutputStream public
  • 约束最小二乘法

    我正在 R 中对人均天然气使用量进行简单回归 回归公式如下 gas b lt lm log gasq pop log gasp log pcincome log pn log pd log ps log years data gas sum
  • 带有图像和 2 TextView 的 TableRow

    我在做这样的事情时遇到问题 http imageshack us photo my images 824 examplehm png 我的 xml 代码在行中显示 3 列 但我想要 2 列 并且第二列必须分为两个水平部分 My xml
  • ffmpeg 中的多个命名管道

    这个问题是后续这个问题 在我的应用程序中 我想修改各种mp3 然后将它们混合在一起 我知道我可以在 FFmpeg 中使用单个命令行来完成此操作 但它最终可能会非常混乱 因为我需要在每个样本上使用各种过滤器 而我有五个过滤器 我的想法是单独编
  • Windows批处理文件-分割字符串以设置变量

    我觉得我在用 FOR 循环选项兜圈子 我试图获取一个字符串 命令的输出 并用逗号分隔它 然后使用每个值来设置 例如 String USER Andy IP 1 2 3 4 HOSTNAME foobar PORT 1234 所以我想用逗号分
  • SonarQube:扫描过程忽略 lcov.info

    我正在扫描ui项目 源代码位于typescript gulp test coverage产生 js文件 然后扫描其覆盖范围 每个 ts文件得到一个 js文件就在它旁边 在同一位置 我将扫描仪指向lcov info文件如下 sonar jav
  • jssor 与 Angular 2 Typescript

    我正在使用 Angular 2 开发一个网站 此时 我已经购买了 Jssor 的订阅 以便为运行到同一页面的 3 个以上单独的滑块生成图像滑块 我当前的问题是文档加载后生成的动态滑块 但未显示 我在 npmjs com 中找到了 jssor
  • 如何在R中绘制完整的图?

    我想在 R 中绘制完整的图表 我怎样才能做到这一点 我在 CRAN 上发现只有一个包具有生成完整图表的功能 但是这个包 即 RnavGraph 没有安装 而是以错误状态退出 进一步搜索似乎很困难 因为图的含义不同 图不仅与图结构相关 而且还
  • 修改颜色选择器面板

    我正在创建一个颜色选择器 需要修改其中一个颜色选择器面板 我想要的是 我想通过 RGB 字段输入输入值来设置颜色 问题是 RGB 值似乎被禁用 api 中是否有一种方法可以打开 RGB 输入以获取值 这里看起来不错 import javax
  • CSS3 中是否有相当于 jQuery 的 :first 选择器?

    我有以下标记 div class a div div class b div div class b div div class b div div class c div 我正在尝试瞄准first and last div 与类b 如果我
  • Firebase 9 + NextJS 12 - 预计 collection() 的第一个参数是 CollectionReference、DocumentReference 或 FirebaseFirestore

    我正在尝试在 NextJS 应用程序中创建一个简单的 Firestore 数据库查询 I have clientApp ts看起来像这样 import firebase compat auth import firebase compat
  • 将锁定的 std::unique_lock 移交给新线程

    考虑下面的例子 我创建了一个std mutex 锁定它 然后将锁交给另一个线程 include
  • 结构需要一生,因为?

    每条语句都标有 希望得到断言 我只是慢慢地度过一生 由于生命周期省略有助于省略明确描述生命周期 有些情况我们需要描述它们 一个示例可能是包含引用的结构 struct Person
  • 空手道 UI - 并行运行场景会引发错误“HttpHostConnectException:连接到 localhost:9222”

    我正在尝试使用以下方法执行包含 3 个场景的功能 Results results Runner parallel tagQuery featurePaths null new ArrayList lt gt 3 karateOutputPa
  • Android - 将下载的图像从 URL 保存到 SD 卡上

    我在单击按钮时从 URL 加载图像 并将其存储为位图 现在我想知道如何将下载的图像保存到 SD 卡以及系统中 我尝试按以下方式进行操作 package com v3 thread fetchImage import java io File
  • 我可以让 WPF 为覆盖元素和被覆盖元素设置 IsMouseOver 吗?

    简化的例子是这样的 想象一下由两个重叠的元素 A 和 B 组成的维恩图 如果我将鼠标悬停在 A AND NOT B 上 则所有 A 都会亮起 如果我将鼠标悬停在 B AND NOT A 上 则所有 B 都会亮起 如果我将鼠标悬停在 A 和
  • jQuery Ajax 对 Web 服务的调用似乎是同步的

    我有两个来自 jquery 对 Web 服务的 ajax 调用 第一次通话 GetMessages 在 javascript 中开始一个间隔 setInterval 并返回存储在会话变量中的消息字符串数组 第二次调用 UploadUsers
  • 使用 eclipse 和 tomcat 7 运行和部署 servlet

    我创建了一个基于的测试项目Tomcat HelloWorld Servlet 与 Eclipse 并尝试像 Tomcat 7 一样从 Eclipse 运行它 我已将其配置为在 127 0 0 1 上运行 但我得到Page cannot be
  • Octave (Matlab) 中复杂函数的域着色(色轮)图

    我明白那个域或色轮绘图是复杂函数的典型特征 令人难以置信的是 我无法在网络搜索中找到超过一百万个返回来轻松地让我在维基百科中复制一些艺术作品 有这个在线资源再现黑色零的图 一点也不坏 但是 我想在 Octave 中请求一些简单的带注释的代码