Este artigo foi publicado como parte do Data Science Blogathon.
Introdução
A visualização de dados em Python é talvez um dos recursos mais usados para ciência de dados com Python atualmente.. As bibliotecas Python vêm com muitos recursos diferentes que permitem aos usuários criar gráficos altamente personalizados., elegante e interativo.
Neste artigo, vamos cobrir o uso do Matplotlib, Seaborn, bem como uma introdução a outros pacotes alternativos que podem ser usados na visualização do Python.
Dentro do Matplotlib e Seaborn, abordaremos alguns dos gráficos mais usados no mundo da ciência de dados para facilitar a visualização.
Mais adiante no artigo, veremos outro recurso poderoso nas visualizações do Python, a subtrama, e cobrimos um tutorial básico para criar subtramas.
Pacotes úteis para visualização em python
Matplotlib
Matplotlib é uma biblioteca de visualização Python para plotagem 2D de matrizes.. Matplotlib é escrito em Python e faz uso da biblioteca NumPy.. Pode ser usado em shells Python e IPython, Laptops Jupyter e servidores de aplicativos da web. Matplotlib vem com uma grande variedade de gráficos como linha, barra, dispersão, histograma, etc. que podem nos ajudar a aprofundar nossa compreensão das tendências, padrões e correlações. Foi introduzido por John Hunter em 2002.
Seaborn
Seaborn é uma biblioteca orientada a conjuntos de dados para realizar representações estatísticas em Python.. É desenvolvido em cima do matplotlib e para criar diferentes visualizações. É integrado com estruturas de dados pandas. A biblioteca realiza internamente o mapeamento e a agregação necessários para criar visuais informativos. Recomenda-se usar uma interface Jupyter / IPython e modo matplotlib.
Bokeh
Bokeh é uma biblioteca de visualização interativa para navegadores modernos.. É adequado para ativos de dados grandes ou de streaming e pode ser usado para desenvolver gráficos e painéis interativos.. Há uma ampla variedade de gráficos intuitivos na biblioteca que podem ser aproveitados para desenvolver soluções. Trabalhe em estreita colaboração com as ferramentas PyData. A biblioteca é adequada para criar imagens personalizadas de acordo com os casos de uso necessários. As imagens também podem ser interativas para servir como modelo de cenário hipotético. Todos os códigos são de código aberto e estão disponíveis no GitHub.
Altair
Altair é uma biblioteca de visualização estatística declarativa para Python. A API do Altair é fácil de usar e consistente, e é construído na especificação Vega-Lite JSONJSON, o Notação de objeto JavaScript, É um formato leve de troca de dados que é fácil para os humanos lerem e escreverem, e fácil para as máquinas analisarem e gerarem. É comumente usado em aplicativos da web para enviar e receber informações entre um servidor e um cliente. Sua estrutura é baseada em pares de valores-chave, tornando-o versátil e amplamente adotado no desenvolvimento de software... A biblioteca declarativa afirma que ao criar qualquer, precisamos definir os links entre as colunas de dados e os canais (eje x, Eixo y, Tamanho, cor). Com a ajuda de Altair, é possível criar imagens informativas com o mínimo de código. O Altair possui uma gramática declarativa para exibição e interação.
tramadamente
plotly.py é uma biblioteca de visualização interativa, Código aberto, alto nível, declarativo e baseado em navegador para Python. Contém uma variedade de visualizações úteis, incluindo gráficos científicos, Gráficos 3D, gráficos estatísticos, gráficos financeiros, entre outros. Gráficos de plotagem podem ser visualizados em notebooks Jupyter, Arquivos HTML autônomos ou hospedados online. A biblioteca Plotly oferece opções para interação e edição. API robusta funciona perfeitamente no modo de navegador local e web.
ggplot
ggplot é uma implementação Python da gramática do grafo. A gramática dos gráficos está preocupada em mapear dados para atributos estéticos (cor, forma, Tamanho) e objetos geométricos (pontos, linhas, barras). Os blocos de construção básicos de acordo com a gramática dos gráficos são dados, geometria (objetos geométricos), Estatisticas (transformações estatísticas), escala, sistema de coordenadas e faceta.
Usar ggplot em Python permite que você crie visualizações informativas de forma incremental, primeiro entendendo as nuances dos dados e depois ajustando os componentes para melhorar as representações visuais.
Como usar a visualização correta?
Para extrair as informações necessárias dos diferentes elementos visuais que criamos, é essencial que usemos a representação correta com base no tipo de dados e nas perguntas que estamos tentando entender. A seguir, discutiremos um conjunto de representações mais usadas e como podemos usá-las de maneira mais eficaz.
Gráfico de barras
uma gráfico de barrasO gráfico de barras é uma representação visual de dados que usa barras retangulares para mostrar comparações entre diferentes categorias. Cada barra representa um valor e seu comprimento é proporcional a ele. Esse tipo de gráfico é útil para visualizar e analisar tendências, facilitar a interpretação de informações quantitativas. É amplamente utilizado em várias disciplinas, como estatísticas, Marketing e pesquisa, devido à sua simplicidade e eficácia.... é usado quando queremos comparar valores de métrica em diferentes subgrupos de dados. Se tivermos um número maior de grupos, Um gráfico de barras é preferível a um gráfico de colunas.
Gráfico de barras usando Matplotlib
#Creating the dataset df = sns.load_dataset('titanic') df=df.groupby('quem')['fare'].soma().to_frame().reset_index() #Creating the bar chart plt.barh(df['quem'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de barras com Seaborn
#Creating bar plot sns.barplot(x = 'fare',y = 'who',dados = titanic_dataset,paleta = "Blues") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de colunas
Os gráficos de colunas são usados principalmente quando precisamos comparar uma única categoria de dados entre subelementos individuais, por exemplo, ao comparar a renda entre regiões.
Gráfico de colunas usando Matplotlib
#Creating the dataset df = sns.load_dataset('titanic') df=df.groupby('quem')['fare'].soma().to_frame().reset_index() #Creating the column plot plt.bar(df['quem'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de colunas com Seaborn
#Reading the dataset titanic_dataset = sns.load_dataset('titanic') #Creating column chart sns.barplot(x = 'who',y = 'fare',dados = titanic_dataset,paleta = "Blues") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de barras agrupado
Um gráfico de barras agrupado é usado quando queremos comparar os valores em determinados grupos e subgrupos.
Gráfico de barras agrupado usando Matplotlib
#Creating the dataset df = sns.load_dataset('titanic') df_pivot = pd.pivot_table(df, valores ="Tarifa",índice ="Who",colunas ="classe", aggfunc = np.mean) #Creating a grouped bar chart ax = df_pivot.plot(kind ="barra",alfa = 0,5) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de barras agrupado com Seaborn
#Reading the dataset titanic_dataset = sns.load_dataset('titanic') #Creating the bar plot grouped across classes sns.barplot(x = 'who',y = 'fare',matiz ="classe",dados = titanic_dataset, paleta = "Blues") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de barras empilhadas
Um gráfico de barras empilhadas é usado quando queremos comparar os tamanhos totais dos grupos disponíveis e a composição dos diferentes subgrupos.
Gráfico de barras empilhadas usando Matplotlib
# Stacked bar chart #Creating the dataset df = pd.DataFrame(colunas =["UMA","B", "C","D"], dados=[["E",0,1,1], ["F",1,1,0], ["G",0,1,0]]) df.plot.bar(x='A', y =["B", "C","D"], empilhado=Verdadeiro, largura = 0,4, alfa = 0,5) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de barras empilhadas com Seaborn
dataframe = pd.DataFrame(colunas =["UMA","B", "C","D"], dados=[["E",0,1,1], ["F",1,1,0], ["G",0,1,0]]) dataframe.set_index('UMA').T.plot(kind = 'bar', empilhado=Verdadeiro) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de linha
Um gráfico de linhaO gráfico de linhas é uma ferramenta visual usada para representar dados ao longo do tempo. Consiste em uma série de pontos conectados por linhas, que permite observar tendências, Flutuações e padrões nos dados. Esse tipo de gráfico é especialmente útil em áreas como economia, Meteorologia e pesquisa científica, facilitando a comparação de diferentes conjuntos de dados e a identificação de comportamentos em geral.. para representação contínua de pontos de dados. Esse visual pode ser usado de forma eficaz quando queremos entender a tendência ao longo do tempo.
Gráfico de linhas usando Matplotlib
#Creating the dataset df = sns.load_dataset("íris") df=df.groupby('sepal_length')['sepal_width'].soma().to_frame().reset_index() #Creating the line chart plt.plot(df['sepal_length'], df['sepal_width']) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de linhas com Seaborn
#Creating the dataset cars = ['AUDI', 'BMW', 'NISSAN', 'TESLA', 'HYUNDAI', 'HONDA'] dados = [20, 15, 15, 14, 16, 20] #Creating the pie chart plt.pie(dados, rótulos = carros,cores = ['#F0F8FF','#E6E6FA','#B0E0E6','#7B68EE','#483D8B']) #Adding the aesthetics plt.title('Chart title') #Show the plot plt.show()
Gráfico de pizza
Os gráficos de pizza podem ser usados para identificar proporções dos diferentes componentes em um determinado todo.
Gráfico de pizza com Matplotlib
#Creating the dataset cars = ['AUDI', 'BMW', 'NISSAN', 'TESLA', 'HYUNDAI', 'HONDA'] dados = [20, 15, 15, 14, 16, 20] #Creating the pie chart plt.pie(dados, rótulos = carros,cores = ['#F0F8FF','#E6E6FA','#B0E0E6','#7B68EE','#483D8B']) #Adding the aesthetics plt.title('Chart title') #Show the plot plt.show()
Gráfico de área
Os gráficos de área são usados para rastrear alterações ao longo do tempo para um ou mais grupos. Os gráficos de área são preferenciais aos gráficos de linhas quando queremos capturar alterações ao longo do tempo para mais de um grupo.
Gráfico de área usando Matplotlib
#Reading the dataset x=range(1,6) y =[ [1,4,6,8,9], [2,2,7,10,12], [2,8,5,10,6] ] #Creating the area chart ax = plt.gca() ax.stackplot(x, e, rótulos =['UMA','B','C'],alfa = 0,5) #Adding the aesthetics plt.legend(loc ="superior esquerdo") plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de área usando Seaborn
# Data years_of_experience =[1,2,3] salário=[ [6,8,10], [4,5,9], [3,5,7] ] # Plot plt.stackplot(years_of_experience,salário, rótulos =['Company A','Company B','Company C']) plt.legend(loc ="superior esquerdo") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Histograma de columna
o histogramasHistogramas são representações gráficas que mostram a distribuição de um conjunto de dados. Eles são construídos dividindo o intervalo de valores em intervalos, o "Caixas", e contando quantos dados caem em cada intervalo. Essa visualização permite identificar padrões, tendências e variabilidade de dados de forma eficaz, facilitando a análise estatística e a tomada de decisões informadas em várias disciplinas.... de columna se utilizan para observar la distribución de una sola variávelEm estatística e matemática, uma "variável" é um símbolo que representa um valor que pode mudar ou variar. Existem diferentes tipos de variáveis, e qualitativo, que descrevem características não numéricas, e quantitativo, representando quantidades numéricas. Variáveis são fundamentais em experimentos e estudos, uma vez que permitem a análise de relações e padrões entre diferentes elementos, facilitando a compreensão de fenômenos complexos.... con pocos puntos de datos.
Gráfico de colunas usando Matplotlib
#Creating the dataset penguins = sns.load_dataset("Pinguins") #Creating the column histogram ax = plt.gca() ax.hist(Pinguins['flipper_length_mm'], color ="azul",alfa = 0,5, compartimentos = 10) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de colunas com Seaborn
#Reading the dataset penguins_dataframe = sns.load_dataset("Pinguins") #Plotting bar histogram sns.distplot(penguins_dataframe['flipper_length_mm'], kde = False, color ="azul", compartimentos = 10) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Histograma de línea
Los histogramas de línea se utilizan para observar la distribución de una sola variable con muchos puntos de datos.
Gráfico de histograma de líneas usando Matplotlib
#Creating the dataset df_1 = np.random.normal(0, 1, (1000, )) densidade = stats.gaussian_kde(df_1) #Creating the line histogram n, x, _ = plt.hist(df_1, bins=np.linspace(-3, 3, 50), histtype=u'step', densidade=Verdadeiro) plt.plot(x, Densidade(x)) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de histograma de linha com Seaborn
#Reading the dataset penguins_dataframe = sns.load_dataset("Pinguins") #Plotting line histogram sns.distplot(penguins_dataframe['flipper_length_mm'], hist = Falso, kde = verdadeiro, rótulo ="África") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de dispersão
Os gráficos de dispersão podem ser aproveitados para identificar relações entre duas variáveis. Ele pode ser usado efetivamente em circunstâncias em que a variável dependente pode ter vários valores para a variável independente.
Gráfico de dispersão usando Matplotlib
#Creating the dataset df = sns.load_dataset("Dicas") #Creating the scatter plot plt.scatter(df['total_bill'],df['tip'],alfa = 0,5 ) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Diagrama de dispersão usando Seaborn
#Reading the dataset bill_dataframe = sns.load_dataset("Dicas") #Creating scatter plot sns.scatterplot(dados = bill_dataframe, x ="total_bill", y ="Ponta") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de bolhas
Os gráficos de dispersão podem ser aproveitados para representar e exibir relações entre três variáveis.
Gráfico de bolhas com Matplotlib
#Creating the dataset np.random.seed(42) N = 100 x = np.random.normal(170, 20, N) y = x + np.random.normal(5, 25, N) cores = np.random.rand(N) área = (25 * np.random.rand(N))**2 df = pd.DataFrame({ 'X': x, 'Y': e, 'Colors': cores, "bubble_size":área}) #Creating the bubble chart plt.scatter('X', 'Y', s="bubble_size",alfa = 0,5, data = df) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Gráfico de bolhas com Seaborn
#Reading the dataset bill_dataframe = sns.load_dataset("Dicas") #Creating bubble plot sns.scatterplot(dados = bill_dataframe, x ="total_bill", y ="Ponta", matiz ="Tamanho", tamanho ="Tamanho") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Box plot
Um gráfico de caixa é usado para mostrar a forma da distribuição, seu valor central e variabilidade.
Gráfico de caixa usando Matplotlib
from past.builtins import xrange #Creating the dataset df_1 = [[1,2,5], [5,7,2,2,5], [7,2,5]] df_2 = [[6,4,2], [1,2,5,3,2], [2,3,5,1]] #Creating the box plot ticks = ['UMA', 'B', 'C'] plt.figure() BPL = plt.boxplot(df_1, posições=np.array(xrange(len(df_1)))*2.0-0.4, sym='', larguras = 0,6) BPR = plt.boxplot(df_2, posições=np.array(xrange(len(df_2)))*2.0+0.4, sym='', larguras = 0,6) plt.plot([], c ="#D7191C", rótulo ="Etiqueta 1") plt.plot([], c ="#2C7BB6", rótulo ="Etiqueta 2") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') plt.legend() plt.xticks(xrange(0, len(Carrapatos) * 2, 2), Carrapatos) plt.xlim(-2, len(Carrapatos)*2) plt.ylim(0, 8) plt.tight_layout() #Show the plot plt.show()
Diagrama de caixa usando Seaborn
#Reading the dataset bill_dataframe = sns.load_dataset("Dicas") #Creating boxplots ax = sns.boxplot(x ="dia", y ="total_bill", matiz ="fumante", dados = bill_dataframe, paleta ="Set3") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico em cascata
Um gráfico em cascata pode ser usado para explicar a transição gradual no valor de uma variável que está sujeita a aumentos ou diminuições.
#Reading the dataset test = pd.Series(-1 + 2 * np.random.rand(10), índice = lista('abcdefghij')) #Function for makig a waterfall chart def waterfall(Série): df = pd.DataFrame({'pos':np.máximo(Série,0),'neg':np.mínimo(Série,0)}) em branco = série.cumsum().mudança(1).Fillna(0) df.plot(kind = 'bar', empilhado=Verdadeiro, bottom=em branco, color =['r','b'], alfa = 0,5) Etapa = blank.reset_index(drop = True).Repetir(3).mudança(-1) Passo[1::3] = np.nan plt.plot(passo.índice, step.values,'k') #Creating the waterfall chart waterfall(teste) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') #Show the plot plt.show()
Diagrama de Venn
Os diagramas de Venn são usados para ver as relações entre dois ou três conjuntos de elementos. Destaque semelhanças e diferenças
from matplotlib_venn import venn3
#Making venn diagram
venn3(subconjuntos = (10, 8, 22, 6,9,4,2))
plt.show()
Mapa de árvore
Os mapas de árvore são usados principalmente para exibir dados agrupados e aninhados em uma estrutura hierárquica e para observar a contribuição de cada componente.
import squarify sizes = [40, 30, 5, 25, 10] squarify.plot(tamanhos) #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') # Show the plot plt.show()
Gráfico de barras 100% Empilhado
Um gráfico de barras empilhadas pode ser aproveitado por 100% quando queremos mostrar as diferenças relativas dentro de cada grupo para os diferentes subgrupos disponíveis.
#Reading the dataset r = [0,1,2,3,4] raw_data = {'greenBars': [20, 1.5, 7, 10, 5], 'orangeBars': [5, 15, 5, 10, 15],'blueBars': [2, 15, 18, 5, 10]} df = pd.DataFrame(dados não tratados) # From raw value to percentage totals = [I+J+K para i,j,k no zip(df['greenBars'], df['orangeBars'], df['blueBars'])] greenBars = [eu / j * 100 para eu,j no zip(df['greenBars'], Totais)] laranjaBarras = [eu / j * 100 para eu,j no zip(df['orangeBars'], Totais)] blueBars = [eu / j * 100 para eu,j no zip(df['blueBars'], Totais)] # plot barWidth = 0.85 nomes = ('UMA','B','C','D','E') # Create green Bars plt.bar(r, greenBars, color ="#b5ffb9", cor da borda="Branco", largura=larguraBarra) # Create orange Bars plt.bar(r, laranjaBarras, bottom=greenBars, color ="#f9bc86", cor da borda="Branco", largura=larguraBarra) # Create blue Bars plt.bar(r, Barras azuis, inferior=[i+j para i,j no zip(greenBars, laranjaBarras)], color ="#A3acff", cor da borda="Branco", largura=larguraBarra) # Custom x axis plt.xticks(r, nomes) plt.xlabel("grupo") #Adding the aesthetics plt.title('Chart title') plt.xlabel('X axis title') plt.ylabel('Y axis title') plt.show()
Parcelas marginais
Gráficos marginais são usados para avaliar a relação entre duas variáveis e examinar suas distribuições. Esses gráficos de dispersão que têm histogramas, plotagens de caixaDiagramas de caixa, Também conhecido como diagramas de caixa e bigode, são ferramentas estatísticas que representam a distribuição de um conjunto de dados. Esses diagramas mostram a mediana, Quartis e outliers, permitindo que a variabilidade e a simetria dos dados sejam visualizadas. Eles são úteis na comparação entre diferentes grupos e na análise exploratória, facilitando a identificação de tendências e padrões nos dados.... ou gráficos de pontos nas margens dos respectivos eixos xey
#Reading the dataset iris_dataframe = sns.load_dataset('íris') #Creating marginal graphs sns.jointplot(x=iris_dataframe["sepal_length"], y=iris_dataframe["sepal_width"], kind='scatter') # Show the plot plt.show()
Subparcelas
Os subquadros são visualizações poderosas que facilitam a comparação entre quadros
#Creating the dataset df = sns.load_dataset("íris") df=df.groupby('sepal_length')['sepal_width'].soma().to_frame().reset_index() #Creating the subplot fig, axes = plt.subplots(nrows=2, ncols=2) ax=df.plot('sepal_length', 'sepal_width',ax = axes[0,0]) ax.get_legend().retirar() #Adding the aesthetics ax.set_title('Chart title') ax.set_xlabel('X axis title') ax.set_ylabel('Y axis title') ax=df.plot('sepal_length', 'sepal_width',ax = axes[0,1]) ax.get_legend().retirar() ax=df.plot('sepal_length', 'sepal_width',ax = axes[1,0]) ax.get_legend().retirar() ax=df.plot('sepal_length', 'sepal_width',ax = axes[1,1]) ax.get_legend().retirar() #Show the plot plt.show()
Em conclusão, Há uma variedade de bibliotecas diferentes que podem ser aproveitadas em todo o seu potencial, entendendo o caso de uso e o requisito. Sintaxe e semântica variam de pacote para pacote e entender os desafios e benefícios de diferentes bibliotecas é essencial. ¡Feliz visualizando!
Cientista de dados e entusiasta de dados analíticaAnalytics refere-se ao processo de coleta, Meça e analise dados para obter insights valiosos que facilitam a tomada de decisões. Em vários campos, como negócio, Saúde e esporte, A análise pode identificar padrões e tendências, Otimize processos e melhore resultados. O uso de ferramentas avançadas e técnicas estatísticas é essencial para transformar dados em conhecimento aplicável e estratégico....
A mídia mostrada neste artigo não é propriedade da Analytics Vidhya e é usada a critério do autor.
Relacionado
Postagens Relacionadas:
- Visualização de dados | Guia de visualização de dados para iniciantes
- Seaborn para visualização de dados | Guia para iniciantes do Seaborn
- Visualização de dados em R | Guia para visualização de dados em R
- Ferramentas de visualização de dados | Principais ferramentas de visualização de dados para dominar 2021