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()
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 |
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()
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 |
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()
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()
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)
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()
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:
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')