Dominando o Matplotlib: Definindo o Intervalo do Eixo Y com Precisão
Published on
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:
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.