Я пытаюсь сделать динамическое количество выпадающих меню в сюжете, чтобы построить множество кривых. У меня previously запросил помощь для построения этих данных, и это сработало хорошо.Mathematica: динамическое число меню
Первое
Needs["PlotLegends`"]
Вот пример данных (не реальные цифры, так как они waaay слишком долго).
data={{year, H, He, Li, C, O, Si, S},
{0, .5, .1, .01, 0.01, 0.01, 0.001, 0.001},
{100, .45, .1, .01, 0.01, 0.01, 0.001, 0.001},
{200, .40, .1, .01, 0.01, 0.01, 0.001, 0.001},
{300, .35, .1, .01, 0.01, 0.01, 0.001, 0.001}}
The соединений переменная число соединений + 1
compounds=8
На данный момент мой код это один
Manipulate[
ListLogLogPlot[
{data[[All, {1, i}]],
data[[All, {1, j}]],
data[[All, {1, k}]]},
PlotLegend -> {data[[1, i]],
data[[1, j]],
data[[1, k]]}
],
{{i, 2, "Compound 1"},Thread[Range[2, compounds] -> Drop[data[[1]], 1]]},
{{j, 3, "Compound 2"},Thread[Range[2, compounds] -> Drop[data[[1]], 1]]},
{{k, 4, "Compound 2"},Thread[Range[2, compounds] -> Drop[data[[1]], 1]]},
ContinuousAction -> False
]
Как вы можете видеть , Я могу легко добавить соединение с помощью duplicati каждая из трех строк (данные, легенда и дескриптор меню), но она хромает и неэффективна. Построение набора занимает около 20 секунд, поэтому здесь около 1 минуты (и я использую довольно эффективный кластер).
Есть ли решение добавить небольшое меню или поле, где я могу добавить количество соединений для построения, поэтому отобразится нужное количество меню? Мне не нужно больше 7 участков, но эффективность ...
Номера 2, 4, 16 являются значениями по умолчанию для построения. Я могу составить список со значениями по умолчанию (2, 14, 16, и некоторые другие я могу выбрать), или они могут быть установлены на 2.
Благодарности
Ваш код не работает, он не является полным. Что такое «данные»? Лучше отправить небольшой полный пример, который фактически запускается. – Nasser
Я добавил часть данных, которые я использую. –