Eu tenho uma lista de pares (a, b)
que gostaria de representar matplotlib
em python como coordenadas xy reais. Atualmente, ele está fazendo dois gráficos, onde o índice da lista fornece a coordenada x, e os valores y do primeiro gráfico são os a
s nos pares e os valores y do segundo gráfico são os b
s nos pares.
Para esclarecer, meus dados se parecem com isto: li = [(a,b), (c,d), ... , (t, u)]
Eu quero fazer um one-liner que apenas chama plt.plot()
incorreto. Se eu não exigisse uma linha, poderia fazer trivialmente:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot(xs, ys)
- Como posso fazer com que matplotlib plote esses pares como coordenadas xy?
Obrigado por toda a ajuda!
python
matplotlib
plot
coordinates
CodeKingPlusPlus
fonte
fonte
plt.scatter( * xy.T )
funciona: curto e obscuro parax, y = xy.T; plt.scatter( x, y )
x, y = zip(*li)
é um código python realmente elegante! Tenho feito as duas linhas de código mais diretas com uma compactação de lista em cada linha (como a pergunta original)plt.scatter
exemplo aleatório tem a ver com a pergunta.Se você tem uma matriz numpy, pode fazer isso:
fonte
np.array
dedata=np.array([[x1,y1],[x2,y2],etc.])
e usarplt.plot(data)
. Sempre terei que dar dois arrays em vez de arrays de arrays?plt.plot(*data.T)
que faz o mesmo que o anterior, mas pula a etapa intermediária.Se você deseja traçar uma única linha conectando todos os pontos da lista
Isso traçará uma linha conectando todos os pares na lista como pontos em um plano cartesiano do início ao fim da lista. Espero que seja isso que você queria.
fonte
scatter()
.