gpt4 book ai didi

dynamic - Mathematica 动态绘制矩阵数据

转载 作者:行者123 更新时间:2023-12-04 16:40:55 25 4
gpt4 key购买 nike

我正在尝试使用 Mathematica 7 动态绘制矩阵中包含的数据。数据包含在其中,通过化学模型获得。

[year  H    He     Li     C     ...  C8H14+,Grain- ]
[0 0 0.03 0.009 1E-3 ... 0 ]
[100 .1 0.03 0.009 1E-3 ... 0 ]
[200 .2 0.03 0.009 1E-3 ... 0 ]
[300 .2 0.03 0.009 1E-3 ... 0 ]
[... ... ... ... ... ... ... ]
[1E6 .5 0.03 0.003 1E-8 ... 1E-25 ]

事实是,矩阵维度是 2001*1476(2000 步和第一行的名称,1475 个化合物 + 1 列的年份),非常重。
我正在尝试绘制任何具有浓度/年图的化合物。这有效
Manipulate[
ListLogLogPlot[data[[All, {1, i}]], PlotLabel -> data[[1, i]] ],
{{i, 2, "Compound"}, 2, compounds, 1}
]

在哪里 数据 是矩阵, 化合物 一个变量,设置为模型化化合物的数量(此处为 1475)。 “复合”是 slider 的标签。
问题是,当几厘米浏览 1400 多个项目时, slider 移动得很快。
我试图做一个下拉菜单
MenuView[
Table[
ListLogLogPlot[data[[All, {1, i}]],PlotLabel -> data[[1, i]]], {i, 2, compounds}
]
]

它也可以工作,但这是一个处理器杀手进程(在执行 16 个内核的 Xeon 16 核服务器上需要 10 多分钟),因为 Mathematica 会在显示任何绘图之前尝试绘制所有绘图。下拉菜单也没有名称,只有一系列数字(1 代表氢,1475 代表 C8H14N+,Grain-),即使该图有名称。

我正在寻找一种仅按需绘制图形的方法,并在下拉列表中显示名称(如果需要,默认为 H)。或者我可以输入化合物名称的字段。 似乎可以做到这一点动态[ ] 命令,但我无法使其正常工作。

谢谢

最佳答案

Mike 的建议不错,但如果您不想费力将其放入数据库,请使用 ContinuousAction->False选项。

testdata = 
Join[{Table[ToString[series[i-1]], {i, 1475}]},
RandomReal[{1., 100.}, {2000, 1476}]];

Manipulate[
ListLogLogPlot[testdata[[All, {1, i}]],
PlotLabel -> testdata[[1, i]]], {{i, 2, "Compound"}, 2, 1475, 1},
ContinuousAction -> False]

enter image description here

要获得弹出菜单,请使用 {i,listofvalues} Controller 规范的语法。
Manipulate[
ListLogLogPlot[testdata[[All, {1, i}]],
PlotLabel -> testdata[[1, i]]], {i, Range[2, 1475]},
ContinuousAction -> False]

enter image description here

这在我的系统上运行得非常快。 (两岁的 MacBook Pro)

更高级的版本:
spec = Thread[Range[2, 1476] -> Table[ToString[series[i]], {i, 1475}]];

Manipulate[
ListLogLogPlot[testdata[[All, {1, i}]],
PlotLabel -> testdata[[1, i]]], {{i, 2, "Compound"}, spec},
ContinuousAction -> False]

enter image description here

如果您只想逐步浏览图像,请单击 slider Controller 旁边的小加号以获得更详细的控制。

enter image description here

关于dynamic - Mathematica 动态绘制矩阵数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com