使用表中的一列作为x值绘制,将其他列绘制为y值

时间:2013-04-18 07:19:42

标签: wolfram-mathematica

我有一个矩阵,第一列是时间,第二列是A的位置,第三列是B的位置等等。我想绘制A,B的位置...... ,作为时间的函数,在同一图中。 Mathematica中是否有一种更有效的方法,而不是逐列制作绘图,然后将它们组合成“Show”?

另外,我希望这些情节的颜色会自动选择彼此不同;为了让这种自动化变得有用,可以同时自动生成图例。如何在Mathematica中做到这一点?

谢谢!

[更新]:克里斯的方法效果非常好。但默认图例使用的小点颜色有点难以分辨;此外,似乎只有4种颜色;在我的情况下,有大约20个y值,使得这个传奇实际上没用。是否有其他符号更大,颜色更多(例如,某些灰度或连续变化的颜色)?

1 个答案:

答案 0 :(得分:1)

a = {{{2001, 1, 1}, 2, 3, 4},
     {{2002, 1, 1}, 3, 4, 5},
     {{2003, 1, 1}, 4, 5, 6},
     {{2004, 1, 1}, 5, 6, 7},
     {{2005, 1, 1}, 6, 7, 8}};

DateListPlot[MapThread[Transpose[{#1, #2}] &,
  {Table[First /@ a, {Length@Rest@Last@a}], Transpose[Rest /@ a]}],
 Joined -> True, PlotLegends -> {"A", "B", "C"}]

enter image description here