我有多个列表,每个列表对应于某些物种的化学浓度超过49个时间步骤的某些模拟化学反应。我还列出了这49个时间步长中的每一个的系统温度值。我试图在y轴上绘制所有这些化学物质列表(其中有19个),再次将温度作为x轴。但是我无法弄清楚如何一次一个地对抗温度。如果我使用任意x轴,我一次只能绘制多个。到目前为止,我有:
runstats = Import["file.csv"]
t = runstats[[1, All]]
element = Import["file.csv"]
e = element[[#, 2 ;; -1]] &
f = element[[#, 1]] &
t是温度,e是所有49个元素值的列表,f是与特定值相关联的物种名称。
所以要绘制它们,我用。
a = MapThread[{#, #2} &, {t, e[1]}]
ListLinePlot[a]
这正确地绘制了e的一个值。但是,我无法将范围[1;;19]
插入e[1;;19]
,以绘制所有19种化学物质。
有什么想法?谢谢!
答案 0 :(得分:0)
按照理解重新编写代码:
t = {3, 4, 6, 8};(* Temps *)
element = {
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8}};
e = element[[#, 2 ;; -1]] &;
f = element[[#, 1]] &;
e[1](* first series of element values at temps *)
{3,4,5,6}
a = MapThread[{#, #2} &, {t, e[1]}]
{{3,3},{4,4},{6,5},{8,6}}
ListLinePlot[a]
一次处理所有元素系列:
a = MapThread[Transpose[{#, #2}] &,
{ConstantArray[t, Length[element]], Rest /@ element}];
或
len = Length[element];
a = MapThread[Transpose[{#, #2}] &,
{ConstantArray[t, len], e /@ Range[len]}];
ListLinePlot[a]