Mathematica dynamic для построения матричных данных

Я пытаюсь динамически построить данные, содержащиеся в матрице с помощью 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). «составной» - метка для ползунка. Проблема в том, что ползунок перемещается очень быстро, когда несколько сантиметров просматривают более 1400 элементов. Я попытался создать раскрывающееся меню с помощью

MenuView[
  Table[
    ListLogLogPlot[data[[All, {1, i}]],PlotLabel -> data[[1, i]]], {i, 2, compounds}
  ]
]

. Он также работает, но это процесс убийцы процессора (10+ минут на 16-ядерном сервере Xeon, выполняющем 16 ядер), поскольку Mathematica пытается построить все графики перед отображением любых из них. Кроме того, у раскрывающегося списка нет названия, только ряд чисел (от 1 для водорода до 1475 для C8H14N +, Grain-), хотя у графика есть название.

Я ищу способ построить график только по запросу с отображением имени в раскрывающемся списке (и, если требуется, H по умолчанию). ИЛИ поле, в котором я могу ввести название соединения. Кажется, это возможно с помощью команды Dynamic [] , но мне не удается заставить ее работать должным образом.

Спасибо

5
задан Sjoerd C. de Vries 10 January 2012 в 21:32
поделиться