Wolfram 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度 现在,要创

好的,我咬一口。首先,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度

现在,要创建一个
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}, ... }]