ListPlot с двумя наборами данных в Mathematica

Есть ли более чистый способ сделать следующее, предполагая, что у меня есть причина сохранять независимость наборов данных?:

x = {1, 2, 3};
y = {1, 4, 9};

ListPlot[Partition[Riffle[x, y], 2]]

Спасибо!


person Scott    schedule 08.04.2010    source источник


Ответы (3)


Я не думаю, что решение Тимо является стандартным. Вот два метода с использованием Transpose или Thread, которые я часто видел.

x = {1, 2, 3};
y = {1, 4, 9};
Transpose[{x, y}]
Thread[{x, y}]

Вывод:

{{1, 1}, {2, 4}, {3, 9}}
{{1, 1}, {2, 4}, {3, 9}}

Оба этих метода избегают явного указания длины ваших данных, что является плюсом в моей книге.

person Davorak    schedule 08.04.2010

ListPlot[Транспонировать[{x, y}]]

person ragfield    schedule 08.04.2010
comment
И это еще чище, если вы используете короткую запись Transpose: {x,y} ESC tr ESC - person gdelfino; 15.04.2010

ListPlot[{x,y}]

РЕДАКТИРОВАТЬ: @Davorak: обязательно будет. Если OP хочет «y против x», тогда

ListPlot[y]

будет достаточно. В любом случае, я не понимаю сложных ответов на очень простой вопрос. Но тогда я не понимаю многих вопросов о SO.

person High Performance Mark    schedule 08.04.2010
comment
Не думаю. Это построит два отдельных тренда. - person Davorak; 09.04.2010