Mathematica如何批量绘制单X对应多Y值图表(无需逐个指定Y列)
批量绘制多列y值的解决方案
你现在的问题是从Excel导入了表格,第1列是x值,后续都是对应的y值,手动指定列索引的方式在y列很多(比如1000列)的时候完全不现实对吧?刚好我有两个简单高效的方法可以解决这个问题:
方法1:用Table自动生成列对
直接用Table函数遍历所有y列的索引,自动生成每一组{x,y}的数据对,代码如下:
tbl = Import["Book2.xlsx"][[1]]; ListPlot[Table[tbl[[All, {1, i}]], {i, 2, Length[tbl[[1]]]}]]
这里Length[tbl[[1]]]会自动获取表格的总列数,i从2开始一直遍历到最后一列,不管你有多少列y值,都能自动生成所有需要的曲线数据,完全不用手动输入每一列的编号。
方法2:拆分x列与y列后配对
先把x值单独提取出来,再把所有y列转成单独的列表,最后逐个和x值配对,代码更简洁:
tbl = Import["Book2.xlsx"][[1]]; xVals = tbl[[All, 1]]; yColumns = tbl[[All, 2 ;;]]; ListPlot[Map[{xVals, #} &, Transpose[yColumns]]]
Transpose[yColumns]会把每一列y值转换成独立的列表,Map函数则负责把每个y列表和xVals组合成绘图需要的{x,y}结构,同样能适配任意数量的y列。
这两种方法都能完美替代手动输入列索引的方式,不管是3列还是1000列y值,都能轻松生成所有曲线的图表。
内容的提问来源于stack exchange,提问作者Jack Groan
相关产品推荐
相关产品推荐

