Guia rápido para plotagem de pandas

Discutiremos os conceitos avançados de plotagem do Pandas neste artigo, juntamente com os diferentes tipos de plotagens que podem ser criados, bem como como personalizá-los de acordo com suas especificações.

pandas planejando



Pandas Plotting

Plot() é o método que o Pandas implementa para gerar diagramas.

Na plotagem do Pandas, podemos exibir o diagrama na tela utilizando Pyplot , um submódulo do Matplotlib .

Utilizando Matplotlib, importe pyplot e exiba nosso empWrong_data.csv DataFrame :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
mrx_df = pds.read_csv("empWrongdata.csv')
mrx_df.plot()
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Forneça um título e rótulos para o gráfico:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
mrx_df = pds.read_csv("empWrongdata.csv')
mrx_df.plot()
pt.title("MR EXAMPLES", size = 20)
pt.xlabel("Indexes", size = 15)
pt.ylabel("Salaries", size = 15)
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pode-se ver que os exemplos nesta página são baseados em um arquivo CSV chamado: empWrong_data.csv .

Baixar empWrong_data ou
abrir empWrong_data


Gráfico de dispersão de pandas

Se você estiver plotando Pandas, indique que precisa de um gráfico de dispersão com o argumento kind:

kind = 'scatter'

É necessário que um gráfico de dispersão tenha um eixo x e um eixo y .

Utilizaremos o termo Índices para o eixo x e o termo Salários  para o eixo y no exemplo abaixo.

Forneça os argumentos x e y da seguinte maneira: x = 'EMPLOYEE_NAME', y = 'SALARY($)'

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_df[['EMPLOYEE_NAME','SALARY($)']].plot(kind='scatter', x = "EMPLOYEE_NAME", y = "SALARY($)", color = "blue")
pt.title("EMPLOYEE DATA", size = 15)
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

No exemplo a seguir, modifique as cores dos rótulos dos eixos x e y:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_ax = mrx_df[['EMPLOYEE_NAME', 'SALARY($)']].plot.scatter(x='EMPLOYEE_NAME', y='SALARY($)', color = 'blue')
mrx_ax.set_xlabel('Names', size = 15)
mrx_ax.set_ylabel('Salaries', size = 15)
#Change the x-axis label color
mrx_ax.xaxis.label.set_color('maroon')
#Change the y-axis label color
mrx_ax.yaxis.label.set_color('purple')
pt.title("EMPLOYEE DATA", size = 17)
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembre-se : de acordo com o exemplo anterior, observamos que o salário de cada funcionário é visualizado de forma eficiente pelo gráfico de dispersão. Isso ocorre porque cada nome no eixo x aponta seu salário no eixo y.

No próximo gráfico de dispersão, colocaremos o ID do funcionário no eixo x e as informações salariais no eixo y e, a seguir, verificaremos a relação :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_df[['EMPLOYEE_ID','SALARY($)']].plot(kind='scatter', x = "EMPLOYEE_ID", y = "SALARY($)", color = "green")
pt.title("EMPLOYEE DATA", size = 15)
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Aplique algum estilo na seguinte plotagem de dispersão:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
matplotlib.style.use('dark_background')
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_df[['EMPLOYEE_ID','SALARY($)']].plot(kind='scatter', x = "EMPLOYEE_ID", y = "SALARY($)", color = "yellow", s = 200)
pt.title("EMPLOYEE DATA", size = 20, color = 'snow')
pt.xticks(fontsize = 15)
pt.yticks(fontsize = 15)
pt.xlabel("EMPLOYEE_ID" ,fontsize=17, color = 'deepskyblue')
pt.ylabel("SALARY($)" ,fontsize=17, color = 'deepskyblue')
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pandas Traçando Histograma

É possível dizer ao programa que você deseja um histograma fornecendo o argumento kind:

kind = 'hist'

Os histogramas requerem apenas uma coluna.

Em um histograma, podemos ver a frequência de cada intervalo, por exemplo, Quatro clientes estão esperando entre 1 e 45 segundos.

O exemplo a seguir utiliza a coluna SALARY($)  para gerar o histograma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
matplotlib.style.use('Solarize_Light2')
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_df[['EMPLOYEE_ID','SALARY($)']].plot(kind='hist', x = "EMPLOYEE_ID", y = "SALARY($)", color = "yellow",bins = 40)
pt.title("EMPLOYEE DATA", size = 20, color = 'black', fontweight='bold')
pt.xticks(fontsize = 15)
pt.yticks(fontsize = 15)
pt.xlabel("SALARY($)" ,fontsize=17, color = 'deepskyblue', fontweight='bold')
pt.ylabel("SALARY($)" ,fontsize=17, color = 'deepskyblue', fontweight='bold')
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Aplique a cor da borda e defina a largura da linha para o seguinte histograma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#Here are three lines that allow our compiler capable to draw:
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pds
import matplotlib.pyplot as pt
matplotlib.style.use('Solarize_Light2')
mrx_df = pds.read_csv('empWrongdata.csv')
mrx_df[['EMPLOYEE_NAME','SALARY($)']].plot(kind='hist', x = "EMPLOYEE_NAME", y = "SALARY($)", color = "blue", bins = 15, edgecolor = 'orange', linewidth = 5)
pt.title("EMPLOYEE DATA", size = 20, color = 'black', fontweight='bold')
pt.xticks(fontsize = 15)
pt.yticks(fontsize = 15)
pt.xlabel("SALARY($)" ,fontsize=17, color = 'deepskyblue', fontweight='bold')
pt.ylabel("EMPLOYEES" ,fontsize=17, color = 'deepskyblue', fontweight='bold')
pt.show()
#To allow our compiler access to draw, we require to insert two lines:
pt.savefig(sys.stdout.buffer)
sys.stdout.flush()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : De acordo com a plotagem do Pandas, o histograma nos mostra que alguns funcionários de uma empresa tinham a mesma proporção salarial e alguns funcionários tinham salários diferentes.

Exemplo de Explicação

O código de exemplo acima lê dados de um arquivo CSV , cria um histograma dos salários dos funcionários usando a função plot() da biblioteca Pandas e personaliza o gráfico usando várias funções da biblioteca Matplotlib.

A linha matplotlib.use('Agg') é usada para definir o backend do Matplotlib como 'Agg', o que permite a plotagem sem exibição. As bibliotecas sys e matplotlib são importadas e a função style.use() é usada para definir o estilo de plotagem como 'Solarize_Light2'.

A função pds.read_csv() lê os dados do arquivo CSV e os armazena em um Pandas DataFrame mrx_df. A função plot() é então chamada no DataFrame para criar um histograma, com o parâmetro kind definido como ' hist ' e os parâmetros x e y definidos como 'EMPLOYEE_NAME' e 'SALARY($)', respectivamente. O parâmetro color define a cor das barras do histograma para azul, o parâmetro bins define o número de bins para 15 e os parâmetros edgecolor e linewidth são usados ​​para personalizar a aparência do histograma.

Por fim, o gráfico é personalizado usando várias funções da biblioteca Matplotlib. A função title() define o título do gráfico como 'EMPLOYEE DATA', com tamanho de fonte 20, cor preta e espessura da fonte em negrito. As funções xticks() e yticks() definem o tamanho da fonte dos rótulos de escala nos eixos x e y para 15, respectivamente. As funções xlabel() e ylabel() são usadas para definir os rótulos dos eixos x e y, respectivamente, com um tamanho de fonte de 17, cor azul celeste profundo e espessura da fonte em negrito.

O gráfico é exibido usando a função show() e, para permitir que o gráfico seja salvo sem exibição, a função savefig() é usada com o argumento sys.stdout.buffer e a função sys.stdout.flush() é chamada .


Benefícios da plotagem do Pandas

Existem vários benefícios em usar a plotagem do Pandas:

  • O Pandas fornece uma interface simples e intuitiva para criar gráficos. Você pode criar gráficos usando apenas algumas linhas de código, o que é especialmente útil para análise exploratória de dados.
  • O Pandas fornece uma variedade de tipos de plotagem e opções de personalização, permitindo que você crie uma ampla gama de plotagens para atender às suas necessidades.
  • Pandas usa Matplotlib, uma das bibliotecas de plotagem mais populares em Python, como back-end. Isso significa que você pode usar todas as opções de personalização e recursos fornecidos pelo Matplotlib em seus gráficos do Pandas.
  • O Pandas também suporta plotagem interativa usando as bibliotecas plotly e bokeh , permitindo que você crie visualizações interativas que podem ser exploradas em um navegador da web.
  • O Pandas se integra bem com outras ferramentas de análise de dados em Python, como NumPy e Scikit-learn, facilitando a análise e a visualização de seus dados em um só lugar.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone