Preciso de ajuda para definir os limites do eixo y no matplotlib. Aqui está o código que eu tentei, sem êxito.
import matplotlib.pyplot as plt
plt.figure(1, figsize = (8.5,11))
plt.suptitle('plot title')
ax = []
aPlot = plt.subplot(321, axisbg = 'w', title = "Year 1")
ax.append(aPlot)
plt.plot(paramValues,plotDataPrice[0], color = '#340B8C',
marker = 'o', ms = 5, mfc = '#EB1717')
plt.xticks(paramValues)
plt.ylabel('Average Price')
plt.xlabel('Mark-up')
plt.grid(True)
plt.ylim((25,250))
Com os dados que tenho para esse gráfico, obtenho limites no eixo y de 20 e 200. No entanto, quero os limites 20 e 250.
python
matplotlib
Curious2learn
fonte
fonte
plt.show()
no final para mostrar o gráfico. Qual versão e qual back-end você está usando?plt.ylim((25,250))
eplt.ylim(ymax = 250, ymin = 25)
. Eu estou usando oAgg
back - end.axisbg
agora está obsoleto #Respostas:
Tente isso. Também funciona para subtramas.
fonte
None
que deixe o cálculo como matplotlib, por exemplo:axes.set_ylim([ymin,None])
Seu código também funciona para mim. No entanto, outra solução alternativa pode ser obter o eixo do gráfico e alterar apenas os valores y:
x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,25,250))
fonte
Uma coisa que você pode fazer é definir seu intervalo de eixos sozinho, usando matplotlib.pyplot.axis.
matplotlib.pyplot.axis
0,10 é para a faixa do eixo x. 0,20 é para a faixa do eixo y.
ou você também pode usar matplotlib.pyplot.xlim ou matplotlib.pyplot.ylim
matplotlib.pyplot.ylim
fonte
Você pode instanciar um objeto
matplotlib.pyplot.axes
e chamáset_ylim()
-lo. Seria algo como isto:fonte
Isso funcionou pelo menos na versão 2.2.2 do matplotlib:
Provavelmente, esta é uma boa maneira de configurar, por exemplo, apenas xmin e ymax, etc.
fonte
Para adicionar à resposta do @ Hima, se você quiser modificar um limite x ou y atual, use o seguinte.
Acho isso particularmente útil quando quero diminuir o zoom ou aumentar um pouco as configurações de plotagem padrão.
fonte
Isso deve funcionar. Seu código funciona para mim, como para Tamás e Manoj Govindan. Parece que você pode tentar atualizar o Matplotlib. Se você não conseguir atualizar o Matplotlib (por exemplo, se você tiver direitos administrativos insuficientes), talvez seja possível usar um back-end diferente
matplotlib.use()
.fonte
matplotlib.use('PDF')
). Estou usando a versão que acompanha a versão mais recente da distribuição do Enthought Python. Você pode ver se funciona com o back-end em PDF. Obrigado!plt.savefig()
?aPlot =
naplt.subplot
fila, também funciona para mim. Parece que, se alguém atribuir o subtrama a uma variável como essa, algum outro método para definir os limites dos eixos deve ser usado. Isso é verdade?plt.ylim()
aplica os limites aos eixos atuais, que são definidos quando você o fazplt.subplot()
. Também não acredito que seplt.subplot()
preocupe com a maneira como os eixos que ele retorna são usados (inseridos em uma variável ou não, etc.). Então, eu diria que deveria funcionar; funciona na minha máquina.Apenas para ajuste fino. Se você quiser definir apenas um dos limites do eixo e deixar o outro inalterado, poderá escolher uma ou mais das seguintes instruções
Dê uma olhada na documentação do xlim e do ylim
fonte
Se um eixo (gerado pelo código abaixo do código mostrado na pergunta) estiver compartilhando o intervalo com os primeiros eixos, certifique-se de definir o intervalo após o último gráfico desses eixos.
fonte