Wolfram mathematica Mathematica中类似matlab的多线图
因此,我有一个值矩阵,行对应于数据集,我想用ListPlot绘制每个值,但我想有一个不同于索引的x轴。在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
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正是我想要的。谢谢好的,我将删除我的评论(然后回来获取此评论)