рисовать точки с помощью matplotlib.pyplot , ]

Я хочу рисовать график, используя список (x,y) пар вместо двух списков, один из X и один из Y. Что-то вроде этого:

 a = [[1,2],[3,3],[4,4],[5,2]] plt.plot(a, 'ro') 

Скорее, чем:

 plt.plot([1,3,4,5], [2,3,4,2]) 

Предложения?

3 Solutions collect form web for “рисовать точки с помощью matplotlib.pyplot , ]”

Вы можете сделать что-то вроде этого:

 a=[[1,2],[3,3],[4,4],[5,2]] plt.plot(*zip(*a)) 

К сожалению, вы больше не можете пройти 'ro'. Вы должны передавать значения маркера и стиля линии в качестве параметров ключевого слова:

 a=[[1,2],[3,3],[4,4],[5,2]] plt.plot(*zip(*a), marker='o', color='r', ls='') 

Трюк, который я использовал, – это распаковка списков аргументов .

Если вы используете массив numpy, вы можете извлечь его по оси:

 a = array([[1,2],[3,3],[4,4],[5,2]]) plot(a[:,0], a[:,1], 'ro') 

Для списков или списков вам понадобится помощник, например:

 a = [[1,2],[3,3],[4,4],[5,2]] plot(*sum(a, []), marker='o', color='r') 

список понятий

Я очень рекомендую либеральное применение переписных списков. Они не только кратки и мощны, они, как правило, делают ваш код очень читаемым.

Попробуйте что-то вроде этого:

 list_of_lists = [[1,2],[3,3],[4,4],[5,2]] x_list = [x for [x, y] in list_of_lists] y_list = [y for [x, y] in list_of_lists] plt.plot(x_list, y_list) 

Следует избегать распаковки аргументов. Это уродливо.

Python - лучший язык программирования в мире.