Wolfram mathematica 请用Mathematica解释创建热量/强度贴图的代码
好的,我咬一口。首先,Mathematica允许通过以下方式之一应用函数:标准形式-Wolfram mathematica 请用Mathematica解释创建热量/强度贴图的代码,wolfram-mathematica,Wolfram Mathematica,好的,我咬一口。首先,Mathematica允许通过以下方式之一应用函数:标准形式-f[x]、前缀形式-f@x、后缀形式-f//x、中缀形式-x~f~y。Belisarius的代码使用标准和前缀形式 那么,让我们先看看最外层的函数:Graphics@x/。gg:Graphics[\uuuu]:>旋转[gg,Pi/2],其中x是Flatten中的所有内容。本质上,这是从x创建一个Graphics对象,并使用(gg:Graphics[\uuu_;])将生成的Graphics对象旋转90度 现在,要创
f[x]
、前缀形式-f@x
、后缀形式-f//x
、中缀形式-x~f~y
。Belisarius的代码使用标准和前缀形式
那么,让我们先看看最外层的函数:Graphics@x/。gg:Graphics[\uuuu]:>旋转[gg,Pi/2]
,其中x
是Flatten
中的所有内容。本质上,这是从x
创建一个Graphics
对象,并使用(gg:Graphics[\uuu_;]
)将生成的Graphics
对象旋转90度
现在,要创建一个Graphics
对象,我们需要提供一组原语,这是一个嵌套列表的形式,其中每个子列表描述一些元素。这是通过以下命令完成的:Table[expr,iterators]
。迭代器可以有几种形式,但在这里它们都有形式{var,min,max}
,并且由于它们缺少第四个项,所以它们以整数步长接受min
和max
之间的每个值。因此,我们的迭代器是{r,7,64}
和{t,1,72}
,并且expr
对它们所采用的每个值进行评估。因为我们有两个迭代器,这会产生一个矩阵,这会混淆图形
,所以我们使用展平[Table[…],1]
将矩阵的每个元素都放入一个简单的列表中
Table
生成的每个元素都是:颜色(ColorData
)、点大小(PointSize
)和点位置(point
)。因此,通过展平
,我们创建了以下内容:
Graphics@Flatten[Table[
(*colors, dont mind*)
{ColorData["CMYKColors"][(a[[r, t]] - .000007)/(.0003 - 0.000007)],
(*point size, dont mind*)
PointSize[1/Sqrt[r]/10],
(*Coordinates for your points "a" is your data matrix *)
Point[
{(rr =Log[.025 + (.58 - .25)/64 r]) Cos@(tt = t 5 Degree),
rr Sin@tt}]
} &@
(*values for the iteration*)
, {r, 7, 64}, {t, 1, 72}], 1]
(*Rotation, dont mind*)
/. gg : Graphics[___] :> Rotate[gg, Pi/2]
颜色生成是从数据中获取的,它假定数据已放入名为a
的列表中。a
的各个元素可通过部分
构造进行访问:。表面上看,ColorData
构造有点奇怪,但它可以被解读为ColorData[“CMYKColors”]
返回一个值,当提供0到1之间的值时,该值会产生一个CMYK颜色值。这就是为什么a
中的数据按原样缩放的原因
点大小是从径向坐标生成的。使用1/Sqrt[r]
时,随着r
的增加,点大小应该会变小,但Log
会反转刻度
类似地,点位置由径向和角度(t
)变量生成,但point
只接受{x,y}
形式的变量,因此他需要转换它们。从{r,t}
到{x,y}
的转换中出现了两个奇怪的构造:rr
和tt
在计算x
时都是(=
),允许在计算y
时使用它们。此外,术语t5度
让Mathematica知道角度以度为单位,而不是弧度。此外,如前所述,还有一个bug:在结束}
之后,术语&
和@
不应该出现
这对Mma社区有帮助吗?这里是这个社区的后续活动。我现在无法优化它。设置这样的变量(rr&tt)对我来说是一个新的选择!明亮的点在Sin后关闭,但格式不正确。@Timo,没有看到结束括号,更新了答案。但是,它仍然不应该有
&@
。像这样使用Set
是不寻常的,但完全合法,而且变量是在使用前设置的。@Timo@rcollyer Nice analysis+1。&@是以前版本的遗留版本。请注意,rr计算反转极轴r“轴”。这就是为什么你会看到分数在增加size@belisarius:我在原来的问题上添加了一段更简单的代码。看看我的答案:@belisarius,是的,我没有想到Log
会做什么。固定的。
Graphics[{{color, point size, point}, {color, point size, point}, ... }]