我想在一個圖中製作一個動態數量的下拉菜單,繪製不同數量的曲線。 我有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}}
的化合物變量是化合物+ 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
]
正如你可以看到,我可以很容易地通過重複添加化合物這三行中的每一行(數據,圖例和菜單描述符),但這是蹩腳的和低效率的。繪製一個集合需要大約20秒,所以這裏大約1分鐘(並且我使用了一個非常高效的集羣)。
是否有解決方案添加一個小菜單或字段,我可以添加化合物的數量繪圖,所以正確數量的菜單將顯示?我不需要超過7個地塊,但效率...
數字2,4,16是繪圖的默認值。我可以用默認值的列表(2,14,16,和其他一些我可能會挑),或者他們可以全部設置爲2
感謝
您的代碼不運行,它是不完整的。什麼是'數據'?最好發佈一個實際運行的小型完整示例。 – Nasser 2011-12-15 14:37:37
我添加了一部分我使用的數據。 – 2011-12-15 15:17:42