Matplotlib
Carregando, aguarde alguns segundos.

3 - Customizações

O módulo matplotlib.pyplot contém diferentes funções para plotagem de gráficos.

plot() gráfico de linhas
bar() gráfico de barras verticais
barh() gráfico de barras horizontais
pie() gráfico de pizza
hist() histograma
scatter() dispersão

Os gráficos das funções podem ser customizados com argumentos nomeados.

Existem elementos comuns aos diferentes formatos de plotagem, que podem ser personalizados: tipo de plotagem, uso de eixos, grade, título, rótulos; cores; estilos etc.

Também existem elementos específicos de cada formato. Marcadores são utilizados com gráficos de linhas, mas não com gráficos de barras.

Se nenhum argumento de configuração do gráfico for declarado, a série de valores de x e y serão plotadas usando os valores padrões configurados.

Exemplo: gráfico de linhas plotado com a função plot() usando como argumento a lista de valores de y:

import matplotlib.pyplot as plt
plt.plot([3,1,5,2,4])
plt.show()

Podem ser usados dois argumentos com os valores de x e y, nesta ordem.

import matplotlib.pyplot as plt
plt.plot([10,20,30,40,50],[7,3,5,6,2])
plt.show()

O gráfico de barras correspondente, plotado com a função bar():

import matplotlib.pyplot as plt
plt.bar([10,20,30,40,50],[7,3,5,6,2])
plt.show()

3.1 - Gráfico de Linhas

São argumentos nomeados dos gráficos de linhas:

nome argumento simbolo descrição
color c cor da linha etc
linestyle ls estilo da linha (sólida, pontilhada etc)
linewidth lw largura da linha
marker m tipo de marcador (redondo, estrela etc)
markeredgewidth mew largura da borda do marcador
markeredgecolor mec cor da borda do marcador
markerfacecolor mfc cor do marcador
markersize ms tamanho do marcador

3.1.1 - O argumento fmt

O gráfico de linhas plotado com a função plot() pode ser customizado com o argumento fmt.

O argumento fmt é uma string que contém caracteres de customização do gráfico, que são os símbolos de tipo de linha, cor da linha e marcador.

Exemplo: gráfico com linha pontilhada, cor vermelha e marcadores nos pontos.

import matplotlib.pyplot as plt
plt.plot([3,1,5,2,4], ":ro", ms=30)
plt.show()

No exemplo acima a linha é pontilhada (simbolo ":"), tem cor vermelha (simbolo "r") e marcadores circulares nos pontos (simbolo "o").

O argumento fmt igual ":ro" tem caracteres ":", "r" e "o", símbolos de customização do gráfico, que respectivamente são o tipo de linha, cor da linha e marcador.

O símbolo ":" determina que a linha será pontilhada, o símbolo "r" determina que sua cor será vermelha (red) e o símbolo "o" determina que os pontos nos eixos terão um marcador redondo.

Se você usar o símbolo de marcador e não usar o símbolo do tipo de linha no parâmetro fmt, apenas os marcadores serão plotados, pois a linha ficará invisível.

import matplotlib.pyplot as plt
plt.plot([3,1,5,2,4], "g*", ms=30) # g=green/*=estrela
plt.show()

Podem ser usados os argumentos explicitos marker, color e linewidth.

import matplotlib.pyplot as plt
plt.plot([3,1,5,2,4], marker="o", linestyle=":", color="r", ms=30)
plt.show()

O argumento fmt é válido apenas para gráficos de linha, gráficos de barra exigem o use de argumentos nomeados.

Exemplo: gráfico de barras com barras vermelhas usando o argumento nomeado color.

import matplotlib.pyplot as plt
plt.bar([10,20,30,40,50],[7,3,5,6,2],color="r")
plt.show()

3.1.2 - Cores das linhas

Letra Cor
"r" Red Vermelho
"g" Green Verde
"b" Blue Azul
"c" Cyan Ciano
"m" Magenta Magenta
"y" Yellow Amarelo
"k" Black Preto
"w" White Branco

Black
Navy
DarkBlue
MediumBlue
Blue
DarkGreen
Green
Teal
DarkCyan
DeepSkyBlue
DarkTurquoise
MediumSpringGreen
Lime
SpringGreen
Aqua
Cyan
MidnightBlue
DodgerBlue
LightSeaGreen
ForestGreen
SeaGreen
DarkSlateGray
DarkSlateGrey
LimeGreen
MediumSeaGreen
Turquoise
RoyalBlue
SteelBlue
DarkSlateBlue
MediumTurquoise
Indigo
DarkOliveGreen
CadetBlue
CornflowerBlue
RebeccaPurple
MediumAquaMarine
DimGray
DimGrey
SlateBlue
OliveDrab
SlateGray
SlateGrey
LightSlateGray
LightSlateGrey
MediumSlateBlue
LawnGreen
Chartreuse
Aquamarine
Maroon
Purple
Olive
Gray
Grey
SkyBlue
LightSkyBlue
BlueViolet
DarkRed
DarkMagenta
SaddleBrown
DarkSeaGreen
LightGreen
MediumPurple
DarkViolet
PaleGreen
DarkOrchid
YellowGreen
Sienna
Brown
DarkGray
DarkGrey
LightBlue
GreenYellow
PaleTurquoise
LightSteelBlue
PowderBlue
FireBrick
DarkGoldenRod
MediumOrchid
RosyBrown
DarkKhaki
Silver
MediumVioletRed
IndianRed
Peru
Chocolate
Tan
LightGray
LightGrey
Thistle
Orchid
GoldenRod
PaleVioletRed
Crimson
Gainsboro
Plum
BurlyWood
LightCyan
Lavender
DarkSalmon
Violet
PaleGoldenRod
LightCoral
Khaki
AliceBlue
HoneyDew
Azure
SandyBrown
Wheat
Beige
WhiteSmoke
MintCream
GhostWhite
Salmon
AntiqueWhite
Linen
LightGoldenRodYellow
OldLace
Red
Fuchsia
Magenta
DeepPink
OrangeRed
Tomato
HotPink
Coral
DarkOrange
LightSalmon
Orange
LightPink
Pink
Gold
PeachPuff
NavajoWhite
Moccasin
Bisque
MistyRose
BlanchedAlmond
PapayaWhip
LavenderBlush
SeaShell
Cornsilk
LemonChiffon
FloralWhite
Snow
Yellow
LightYellow
Ivory
White

O código abaixo mostra as linhas com as cores disponíveis.

import matplotlib.pyplot as plt
#
cores = [
    ["Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal"],
    ["DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan"],
    ["MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","DarkSlateGrey","LimeGreen"],
    ["MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen"],
    ["CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","DimGrey","SlateBlue","OliveDrab"],
    ["SlateGray","SlateGrey","LightSlateGray","LightSlateGrey","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray"],
    ["Grey","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","DarkSeaGreen"],
    ["LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown"],
    ["DarkGray","DarkGrey","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick"],
    ["DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","LightGrey"],
    ["Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood"],
    ["LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue"],
    ["HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite"],
    ["Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta"],
    ["DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink"],
    ["Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip"],
    ["LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],
    ["Ivory","White","White","White","White","White","White","White"]
]

#
linhas, colunas = 18, 8
fig, ax = plt.subplots(linhas, colunas, figsize=(20,20))
#
for linha in range(linhas):
    for coluna in range(colunas):
        aux_ax = ax[linha,coluna]
        cor = cores[linha][coluna]
        aux_ax.set_xlabel(cor,fontsize=11,labelpad=-1)
        aux_ax.set_xticks(())
        aux_ax.set_yticks(())
        aux_ax.plot([1,3,2,4],linewidth=10,color=cor)
#
plt.subplots_adjust(left=0.01, bottom=0.01, right=0.99, top=0.99)
plt.show()

3.1.3 - Estilos de linhas

Os valores dos estilos de linha podem ser os seguintes:

Tipo Símbolo Tipo da linha
solid "-" Sólida
dotted ":" Pontilhada
dashed "--" Tracejada
dashdot "-." Pontilhada/tracejada
None "" invisível

import matplotlib.pyplot as plt
#
estilos = [
    ["-", ":"],
    ["--", "-."]
]
#
linhas, colunas = 2, 2
fig, ax = plt.subplots(linhas, colunas)
#
for linha in range(linhas):
    for coluna in range(colunas):
        aux_ax = ax[linha,coluna]
        aux_est = estilos[linha][coluna]
        aux_ax.plot(
            [1,3,2,4],
            linewidth  = 6,
            linestyle  = aux_est,
            c          = "green")
        aux_ax.set_xticks(())
        aux_ax.set_yticks(())
#
plt.show()

3.1.4 - Marcadores

O marcador é uma marca como círculo, quadrado, hexagono etc, preenchido com uma cor e com borda opcional, usado para destacar cada ponto individual em um gráfico de pontos ou de linhas.

O argumento de palavra-chave marker mostra os marcadores especificados enfatizando cada ponto no gráfico.

Importamos as bibliotecas matplotlib.pyplot com o apelido plt e numpy com o apelido np.

import matplotlib.pyplot as plt
import numpy as np

A função grafico_plot() será padrão para os exemplos a seguir, com o gráfico sendo personalizado com os argumentos da função, repassados ao métodoplt.plot() utlizado na função para plotagem do gráfico de linhas.

def grafico_plot(*args,**kwargs):
    y = np.array([3,8,1,10])
    plt.figure(figsize=(6,4))
    plt.xlim(-1,4)
    plt.ylim(0,11)
    plt.plot(y,*args,**kwargs)
    plt.show()

Sem nenhum argumento a função plt.plot() mostra a linha com a cor e largura padrões, e sem marcadores.

Exemplo: gráfico de linhas com valores padrões.

grafico_plot()

O argumento marker define o tipo de marcador, e assim o marcador é usado sobre cada ponto no gráfico.

grafico_plot(marker="o")

O argumento ms define o tamanho do marcador.

Exemplo: marcador quadrado com tamanho igual 40.

grafico_plot(marker="s", ms=40)

O argumento ms define o tamanho do marcador.

Exemplo: marcador hexagonal com tamanho igual 30 e cor laranja, na face e na borda.

grafico_plot(marker="H", ms=30, color="orange")

O argumento facecolor ou mfc define a cor do marcador.

Exemplo: marcador hexagonal com tamanho igual 30 e cor laranja, com cor azul na face.

grafico_plot(marker="H", ms=30, color="orange", mfc="blue")

O argumento markeredgecolor ou mec define a cor da borda do marcador.

Exemplo: marcador hexagonal com tamanho igual 30 e cor laranja, com cor azul na borda.

grafico_plot(marker="H", color="orange", mec="blue", ms=30)

O argumento markeredgewidth ou mew define a cor da borda do marcador.

Exemplo: marcador hexagonal com tamanho igual 30 e cor laranja, com cor azul na borda.

grafico_plot(marker="H", color="orange", mec="blue", mew=3, ms=30)

3.1.5 - Referência do marcador

Você pode escolher qualquer um destes marcadores:

Marker Descrição
o círculo
* estrela
. ponto
, pixel
x x
X x preenchido
+ mais
P mais preenchido
s quadrado
D diamante
d diamante fino
p pentagono
H hexagono
h hexagono
v triângulo para abaixo
^ triângulo para acima
< triângulo para esquerda
> triângulo para direita
1 tri para abaixo
2 tri para acima
3 tri para esquerda
4 tri para direita
| linha vertical
_ linha horizontal

Abaixo os gráficos com os marcadores:

import matplotlib.pyplot as plt
#
marcadores = [
    ["o", "*", "."],
    [",", "x", "X"],
    ["+", "P", "s"],
    ["D", "d", "p"],
    ["H", "h", "v"],
    ["^", "<", ">"],
    ["1", "2", "3"],
    ["4", "|", "_"]
]
#
rows, cols = 8, 3
fig, ax = plt.subplots(rows, cols)
#
for row in range(rows):
    for col in range(cols):
        aux_ax  = ax[row,col]
        aux_mar = marcadores[row][col]
        aux_ax.plot(
            [1,3,2,4],
            c         = "lightgrey",
            marker    = aux_mar,
            linewidth = 1,
            ms        = 30,
            mfc       = "blue",
            mec       = "orange")
        aux_ax.set_xticks(())
        aux_ax.set_yticks(())
#
plt.show()

3.1.6 - Strings de formato fmt

Você também pode usar o parâmetro de notação de string de atalho para especificar o marcador.

Este parâmetro também é chamado fmt, e é escrito com esta sintaxe: "mlc" (marker|line|color), onde:

  • m: tipo do marcador ("o", "*", ">", "+" etc)
  • l: tipo da linha ("-", "--", "-.", ":", pode ser omitido)
  • c: cor da linha ("r", "g", "b" etc, pode ser omitido)

O caracter do marcador é obrigatório no argumento fmt e pode ser qualquer valor da referência de marcador acima ("o", "*", ">", "+" etc).

O caracter de cor pode ser um dos seguintes:

Letra Cor
"r" Red Vermelho
"g" Green Verde
"b" Blue Azul
"c" Cyan Ciano
"m" Magenta Magenta
"y" Yellow Amarelo
"k" Black Preto
"w" White Branco
"" rc Padrão

O caracter de estilo da linha pode ser um dos seguintes:

Símbolo Tipo Tipo da linha
"-" solid Sólida
":" dotted Pontilhada
"--" dashed Tracejada
"-." dashdot Pontilhada/tracejada
"" None Invisível

Exemplo: Marque cada ponto com um marcador de círculo, usando cores padrões.

grafico_plot('o')

Exemplo: ligue os pontos com uma linha pontilhada, marcador de círculo, usando cores padrões.

grafico_plot('o:')

Exemplo: ligue os pontos com uma linha pontilhada, marcador de círculo, usando a cor vermelha.

grafico_plot('o:r')
Arduino
Coautor
Betobyte
Autor
Autores
||| Áreas ||| Estatística ||| Python ||| Projetos ||| Dicas & Truques ||| Quantum ||| Matplotlib || Python para Iniciantes || Python Básico || Matplotlib || Numpy || Seaborn || Pandas || Django || Estatística para Cientistas de Dados || Python com ML Básico || Python com ML Básico || Aulas | Introdução (introdução, pyplot, plotagem, pacotes complementares) | Gráficos básicos (barra, pizza, linhas, pontos) | Customizações (cores, linhas, marcadores) | Gráficos elaborados (pista, radial, bolhas) | Distribuições (violino, densidade, histograma, caixa, cumeeira) | Correlações (dispersão, calor, correlograma, bolha, dispersão conectada, densidade 2d) | Partições (árvore, venn, rosca, pizza, dentrograma, empacotamento circular) | Classificações (barras, radar, nuvem de palavras, paralelas, pirulito, barras circulares) | Galeria (Gráfico de dispersão 3D, GD 3D com autovetores, Cubo 3D, Distribuição Gaussiana Multivariada com superfície colorida, DGM como grade de malha, Gráfico de Barras Vertical com barras de erro, GB horizontal com barras de erro, GB back-to-back, GB agrupadas, GB empilhadas, GB com rótulos, GB com rotação, GB com gradiente de cores, preenchimento de padrão, Gráficos de Caixa (boxplot), GC preta e branca, GC, horizontal, GC cheia, GC personalizadas, GC e barra de violinos, GC simples, subplots, cores, eixo estético, rótulos personalizados, linhas de grade, folhas de estilos, mapas de calor, de cores, histogramas, e mais.) |