Wolfram mathematica Mathematica中类似matlab的多线图

Wolfram mathematica Mathematica中类似matlab的多线图,wolfram-mathematica,plot,Wolfram Mathematica,Plot,因此,我有一个值矩阵,行对应于数据集,我想用ListPlot绘制每个值,但我想有一个不同于索引的x轴。在matlab中,我会: x = 0:4; ys = [10 20 40 80 160; 20 40 80 160 320; 30 60 120 240 480]'; plot(x,ys) 这将给出三行,x值为0-4,y值为每列 我能想到的最接近数学的是 x = Range[0,4]; ys = {{10, 20, 40, 80, 160}, {2

因此,我有一个值矩阵,行对应于数据集,我想用ListPlot绘制每个值,但我想有一个不同于索引的x轴。在matlab中,我会:

x = 0:4;

ys = [10 20 40 80 160; 
      20 40 80 160 320; 
      30 60 120 240 480]';

plot(x,ys)
这将给出三行,x值为0-4,y值为每列

我能想到的最接近数学的是

x = Range[0,4];

ys = {{10, 20, 40, 80, 160},
      {20, 40, 80, 160, 320},
      {30, 60, 120, 240, 480}};

ListPlot[Transpose[{x,#}]& /@ ys]


这是正确的方法吗?这似乎有点神秘。希望我缺少一个函数或选项。

在您的特定情况下,由于点是等距的,您可以使用

ListPlot[ys, DataRange -> x[[{1,-1}]]]
希望这不那么神秘。当然,您也可以直接使用范围值:

ListPlot[ys, DataRange -> {0, 4}]

一个小问题是:您不需要手动重新组合这些Y。在编程上,我们可以做分区[ys,长度[x]]。同样,对于Leonid Shifrin的日期范围,可以使用x[{1,-1}]]。没什么大不了的,但是这些去掉了一些手工工作。是的,我的原始问题中的ys来自不同的计算。。。只是想让代码类似于matlab:-)不过还是要感谢first和last上的索引技巧!太棒了,DataRange正是我想要的。谢谢好的,我将删除我的评论(然后回来获取此评论)