Estilos de Linha no Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Matplotlib é uma poderosa ferramenta de visualização de dados para Python. Uma de suas funcionalidades é a capacidade de criar estilos de linha personalizados para gráficos. Neste laboratório, aprenderemos como criar e usar diferentes estilos de linha em Matplotlib.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar as bibliotecas necessárias

Para usar Matplotlib, primeiro precisamos importar a biblioteca. Também importaremos a biblioteca NumPy para gerar alguns dados de exemplo para nossos gráficos.

import matplotlib.pyplot as plt
import numpy as np

Definir estilos de linha

Existem diferentes maneiras de definir estilos de linha em Matplotlib. Podemos usar estilos predefinidos como 'solid' (sólido), 'dashed' (tracejado), 'dotted' (pontilhado) e 'dashdot' (traço-ponto). Também podemos definir estilos de linha personalizados usando uma tupla de traços (dash tuple).

linestyle_str = [
     ('solid', 'solid'),      ## Same as (0, ()) or '-'
     ('dotted', 'dotted'),    ## Same as (0, (1, 1)) or ':'
     ('dashed', 'dashed'),    ## Same as '--'
     ('dashdot', 'dashdot')]  ## Same as '-.'

linestyle_tuple = [
     ('loosely dotted',        (0, (1, 10))),
     ('dotted',                (0, (1, 1))),
     ('densely dotted',        (0, (1, 1))),
     ('long dash with offset', (5, (10, 3))),
     ('loosely dashed',        (0, (5, 10))),
     ('dashed',                (0, (5, 5))),
     ('densely dashed',        (0, (5, 1))),

     ('loosely dashdotted',    (0, (3, 10, 1, 10))),
     ('dashdotted',            (0, (3, 5, 1, 5))),
     ('densely dashdotted',    (0, (3, 1, 1, 1))),

     ('dashdotdotted',         (0, (3, 5, 1, 5, 1, 5))),
     ('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
     ('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]

Criar uma função para plotar estilos de linha

Podemos criar uma função para plotar os diferentes estilos de linha. A função recebe um objeto de eixo (axis object), uma lista de estilos de linha e um título como parâmetros de entrada.

def plot_linestyles(ax, linestyles, title):
    X, Y = np.linspace(0, 100, 10), np.zeros(10)
    yticklabels = []

    for i, (name, linestyle) in enumerate(linestyles):
        ax.plot(X, Y+i, linestyle=linestyle, linewidth=1.5, color='black')
        yticklabels.append(name)

    ax.set_title(title)
    ax.set(ylim=(-0.5, len(linestyles)-0.5),
           yticks=np.arange(len(linestyles)),
           yticklabels=yticklabels)
    ax.tick_params(left=False, bottom=False, labelbottom=False)
    ax.spines[:].set_visible(False)

    for i, (name, linestyle) in enumerate(linestyles):
        ax.annotate(repr(linestyle),
                    xy=(0.0, i), xycoords=ax.get_yaxis_transform(),
                    xytext=(-6, -12), textcoords='offset points',
                    color="blue", fontsize=8, ha="right", family="monospace")

Criar o gráfico

Podemos criar o gráfico chamando a função plot_linestyles para cada conjunto de estilos de linha.

fig, (ax0, ax1) = plt.subplots(2, 1, figsize=(10, 8), height_ratios=[1, 3])

plot_linestyles(ax0, linestyle_str[::-1], title='Named linestyles')
plot_linestyles(ax1, linestyle_tuple[::-1], title='Parametrized linestyles')

plt.tight_layout()
plt.show()

Interpretar o gráfico

O gráfico resultante mostra os diferentes estilos de linha. O gráfico superior mostra os estilos de linha nomeados, enquanto o gráfico inferior mostra os estilos de linha parametrizados. As anotações no lado direito mostram as tuplas de traços (dash tuples) usadas para cada estilo de linha.

Resumo

Neste laboratório, aprendemos como criar e usar diferentes estilos de linha no Matplotlib. Definimos estilos de linha usando estilos predefinidos e tuplas de traços (dash tuples). Também criamos uma função para plotar os diferentes estilos de linha e interpretamos o gráfico resultante.