Skip to content
Tutoriais
Matplotlib
How to Set the Y-Axis Range in Matplotlib

Dominando o Matplotlib: Definindo o Intervalo do Eixo Y com Precisão

Você está lutando para definir os limites do eixo Y no Matplotlib? Você está frustrado com o intervalo automático do eixo Y e deseja uma forma de definir de acordo com suas necessidades? Se sim, você está no lugar certo! Este guia abrangente sobre "como definir o intervalo do eixo Y no Matplotlib" colocará você no controle e lhe dará total controle sobre o eixo Y do seu gráfico.

Antes de começar, vamos entender a importância de definir o intervalo do eixo Y no Matplotlib. Não se trata apenas de um apelo visual - definir corretamente o intervalo do eixo Y é crucial para a integridade da representação dos seus dados. Um eixo Y mal dimensionado pode distorcer tendências de dados e enganar os espectadores. Portanto, saber como definir manualmente o intervalo do eixo Y não apenas aprimorará a qualidade dos seus gráficos, mas também melhorará a clareza e a precisão da apresentação dos dados.

Decifrando o Matplotlib: O Intervalo do Eixo Y

Para começar, vamos esclarecer o papel do eixo Y no Matplotlib. Na maioria dos gráficos 2D, o eixo Y representa a variável dependente - a variável que muda em resposta à variável independente plotada no eixo X. O intervalo do eixo Y, portanto, define os limites inferiores e superiores dessa variável dependente no gráfico.

A maneira mais simples de definir o intervalo do eixo Y é usando a função ylim() do módulo pyplot do Matplotlib. Essa função permite que você especifique os limites inferiores e superiores do eixo Y como argumentos. Aqui está um exemplo simples:

import matplotlib.pyplot as plt
 
plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
plt.ylim(0, 20)
plt.show()

Neste exemplo, plotamos uma função quadrática simples e definimos o intervalo do eixo Y de 0 a 20 com plt.ylim(0, 20).

Intervalo do Eixo Y no Matplotlib: Usando Objetos Axes para Maior Controle

Embora plt.ylim() seja ótimo para gráficos simples, para gráficos mais complexos, você pode precisar de um controle mais refinado sobre o intervalo do eixo Y. É aí que brilha a API orientada a objetos do Matplotlib.

Em vez de trabalharmos com o módulo pyplot, você pode criar um objeto Axes diretamente e trabalhar com ele. Cada objeto Axes vem com uma série de métodos que você pode usar para personalizar o seu gráfico, incluindo métodos para definir o intervalo do eixo Y: set_ylim() e set_ybound().

Aqui está um exemplo de como definir o intervalo do eixo Y usando um objeto Axes:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ax.set_ylim(0, 20)
plt.show()

Neste exemplo, primeiro criamos um objeto Figure e um objeto Axes com plt.subplots(). Em seguida, plotamos a função quadrática no objeto Axes com ax.plot(). Por fim, definimos o intervalo do eixo Y com ax.set_ylim(0, 20).

Intervalo do Eixo Y Dinâmico: Ajustando os Limites do Eixo Y na Fly

Às vezes, você pode querer ajustar o intervalo do eixo Y com base nos dados ou em algum outro critério. Para isso,

o Matplotlib fornece funções que permitem buscar o intervalo atual do eixo Y, que você pode então modificar conforme necessário. As principais funções aqui são get_ylim(), set_ylim(), get_ybound() e set_ybound().

Aqui está um exemplo de como definir dinamicamente o intervalo do eixo Y:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ymin, ymax = ax.get_ylim()
ax.set_ylim(ymin, ymax*1.1)
plt.show()

Neste exemplo, primeiro buscamos o intervalo atual do eixo Y com ax.get_ylim(). Em seguida, definimos um novo intervalo do eixo Y que estende o máximo atual em 10% com ax.set_ylim(ymin, ymax*1.1).

Essas são as principais maneiras de definir o intervalo do eixo Y no Matplotlib. No entanto, a versatilidade do Matplotlib permite inúmeras outras abordagens, nas quais iremos aprofundar nas seções seguintes.

Partindo para o Novo: Além do Básico do Intervalo do Eixo Y

O Matplotlib também oferece funcionalidades mais avançadas para definir o intervalo do eixo Y. Isso pode ser particularmente útil ao lidar com figuras de múltiplos painéis, quando você precisa aplicar o mesmo intervalo do eixo Y em vários subplots ou quando deseja ajustar dinamicamente o intervalo do eixo Y com base nos dados.

Definindo o Mesmo Intervalo do Eixo Y para Vários Subplots

Se você estiver criando uma figura de vários painéis com vários subplots, poderá querer usar o mesmo intervalo do eixo Y para todos os subplots para garantir a consistência. Você pode fazer isso facilmente percorrendo todos os objetos Axes e definindo o intervalo do eixo Y para cada um. Aqui está como:

fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.set_ylim(0, 20)
plt.show()

Neste exemplo, primeiro criamos uma grade de subplots 2x2 com plt.subplots(2, 2). Em seguida, percorremos todos os objetos Axes no array resultante e definimos o intervalo do eixo Y para cada um com ax.set_ylim(0, 20).

Ajustando Dinamicamente o Intervalo do Eixo Y com Base nos Dados

Outra técnica avançada é ajustar o intervalo do eixo Y com base nos dados em si. Por exemplo, você pode querer definir o intervalo do eixo Y para abranger desde o valor mínimo até o valor máximo no seu conjunto de dados. Aqui está um exemplo de como fazer isso:

data = [0, 1, 4, 9, 16]
fig, ax = plt.subplots()
ax.plot([0, 1, 2, 3, 4], data)
ax.set_ylim(min(data), max(data))
plt.show()

Neste exemplo, primeiro definimos uma lista de pontos de dados. Em seguida, criamos um objeto Figure e um objeto Axes, plotamos os dados no objeto Axes e definimos o intervalo do eixo Y para abranger desde o valor mínimo até o valor máximo no conjunto de dados.

Alternativa ao Matplotlib: Visualize Dados com o PyGWalker

Além de usar o Matplotlib para visualizar seu dataframe do pandas, aqui está uma biblioteca Python alternativa de código aberto que pode ajudar você a criar visualizações de dados com facilidade: PyGWalker (opens in a new tab).

[![PyGWalker para visualização de dados](https://user-images.githubusercontent.com/8137814/221879671-70379d15-81ac-44b9-b267-a8fa3842a0d9.png)](https://github.com/Kanaries/pygwalker)
 
Não é mais necessário realizar processamento complicado com código Python, simplesmente importe seus dados e arraste e solte variáveis para criar todos os tipos de visualizações de dados! Aqui está um vídeo demonstrativo rápido sobre a operação:
 
<br></br>
<div className="video-container">
<iframe width="800" height="600" src="https://www.youtube.com/embed/g5USsCdjyRY?autoplay=1&mute=1&loop=1&playlist=g5USsCdjyRY" title="Player de vídeo do YouTube" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen playsInline></iframe>
</div> 
 
Veja como usar o PyGWalker no seu Jupyter Notebook:
 
```python copy
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternativamente, você pode experimentá-lo no Kaggle Notebook / Google Colab:

Execute o PyGWalker no Kaggle Notebook (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Dê um ⭐️ no GitHub ao PyGWalker (opens in a new tab)
Execute o PyGWalker no Kaggle Notebook (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)

PyGWalker é construído com suporte de nossa comunidade Open Source. Não se esqueça de verificar PyGWalker GitHub (opens in a new tab) e nos dar uma estrela!

Perguntas frequentes

1. Qual é a diferença entre ylim() e set_ylim() no matplotlib?

ylim() é uma função do módulo pyplot do matplotlib que você pode usar para definir o intervalo do eixo y para o gráfico atual. set_ylim(), por outro lado, é um método da classe Axes na API orientada a objetos do matplotlib que você pode usar para definir o intervalo do eixo y para um objeto Axes específico.

2. Como definir o intervalo do eixo y para se ajustar automaticamente com base nos dados?

Você pode usar o método autoscale() da classe Axes para dimensionar automaticamente o intervalo do eixo y com base nos dados. Para ter ainda mais controle, você pode usar o método get_ylim() para buscar o intervalo atual do eixo y e, em seguida, ajustá-lo conforme necessário antes de defini-lo com set_ylim().

3. Posso definir o intervalo do eixo y para vários subplots de uma só vez?

Sim, você pode definir o intervalo do eixo y para vários subplots de uma só vez percorrendo todos os objetos Axes e definindo o intervalo do eixo y para cada um.