将多个 y 值列表与单个 x 值列表配对

pair multiple y-value lists with a single x-value list

我有多个列表,每个列表对应于某些物种在某些模拟化学反应的 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 种化学物质。

有什么想法吗?谢谢!

按理解重述您的代码:

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]