В этом вопросе задается вопрос о разнице между построением графиков
plt.plot([[1,2,3]],[[2,3,1]])
и
plt.plot([[1],[2],[3]],[[2],[3],[1]])
В обоих случаях списки являются двухмерными.В первом случае у вас есть один ряд данных.Во втором случае у вас есть один столбец данных.
Из документации :
x
, y
: массив или скаляр
[...]
Обычно эти параметры являются массивами длины N. Однако также поддерживаются скаляры (эквивалентные массиву с постоянным значением).
Параметры также могут быть 2-мерный .Затем столбцы представляют отдельные наборы данных .
Важной частью является последнее предложение.Если данные 2D, как здесь, они интерпретируются по столбцам.Поскольку массив строк [[2,3,1]]
состоит из 3 столбцов, каждый из которых имеет одно значение.plot
, следовательно, создаст 3 одиночные «линии» с одной точкой.Но поскольку одна точка не определяет линию, она будет видна только при активации маркера, например,
plt.plot([[1,2,3]], [[2,3,1]], marker="o")

При перемещении этого массива строк вмассив столбцов, он будет интерпретирован как один набор данных с 3 записями.Следовательно, желаемый результат в одной строке
plt.plot([[1],[2],[3]], [[2],[3],[1]])

Конечно, выравнивание массива до 1D одинаково возможно,
plt.plot(np.array([[1,2,3]]).flatten(), np.array([[2,3,1]]).flatten())
Вы можете легко проверить, сколько линий вы произвели
print(len(plt.plot([[1,2,3]],[[2,3,1]]))) # prints 3
print(len(plt.plot([[1],[2],[3]],[[2],[3],[1]]))) # prints 1