Eu tenho um gráfico de dispersão com um monte de coordenadas x, y aleatórias. Atualmente, o eixo Y começa em 0 e sobe para o valor máximo. Eu gostaria que o eixo Y iniciasse no valor máximo e subisse para 0.
points = [(10,5), (5,11), (24,13), (7,8)]
x_arr = []
y_arr = []
for x,y in points:
x_arr.append(x)
y_arr.append(y)
plt.scatter(x_arr,y_arr)
python
matplotlib
DarkAnt
fonte
fonte
A resposta de DisplacedAussie está correta, mas geralmente um método mais curto é apenas para reverter o único eixo em questão:
onde a
gca()
função retorna a instância atual do Axes e[::-1]
reverte a lista.fonte
Use matplotlib.pyplot.axis ()
axis([xmin, xmax, ymin, ymax])
Então você pode adicionar algo assim no final:
Embora você queira preenchimento em cada extremidade, para que os pontos extremos não fiquem na borda.
fonte
Se você estiver no
pylab
modo ipython , entãoo
show()
é necessário para torná-lo atualizar a figura atual.fonte
Você também pode usar a função exposta pelo objeto de eixos do gráfico de dispersão
fonte
Outro método semelhante aos descritos acima é usar,
plt.ylim
por exemplo:Esse método funciona para mim quando estou tentando compor vários conjuntos de dados em Y1 e / ou Y2
fonte
Usar ylim () pode ser a melhor abordagem para seu propósito:
resultará:
fonte
Como alternativa, você pode usar a função matplotlib.pyplot.axis () , que permite inverter qualquer um dos eixos da plotagem
Ou se você preferir reverter apenas o eixo X, então
Na verdade, você pode inverter os dois eixos:
fonte
Se você estiver usando o matplotlib, poderá tentar:
matplotlib.pyplot.xlim(l, r) matplotlib.pyplot.ylim(b, t)
Essas duas linhas definem os limites dos eixos x e y, respectivamente. Para o eixo x, o primeiro argumento l define o valor mais à esquerda e o segundo argumento r define o valor mais à direita. Para o eixo y, o primeiro argumento b define o valor mais baixo e o segundo argumento t define o valor mais alto.
fonte