Como usar python para desenvolver gráficos para a ciência de dados
Os gráficos são úteis para os cientistas de dados. UMA gráfico
Conteúdo
Pense em um mapa de um sistema de metrô. Cada uma das estações se conecta a outras estações, mas nenhuma estação única conecta a todas as estações do sistema de metrô. Os gráficos são um tema de ciência de dados popular por causa de seu uso em análise de mídia social. Ao realizar a análise de mídia social, você descrever e analisar redes de relações, como amigos ou conexões de negócios, a partir de centros sociais, como Facebook, Google+, Twitter ou LinkedIn.
As duas representações comuns de gráficos são undirected, onde o gráfico mostra simplesmente linhas entre os elementos de dados, e dirigido, onde setas adicionados à linha mostram que os fluxos de dados num determinado sentido. Por exemplo, considere uma representação de um sistema de água. A água fluiria em apenas uma direção na maioria dos casos, assim que você poderia usar um grafo direcionado para descrever não só as conexões entre origens e destinos para a água, mas também para mostrar a direção de água usando setas.
Video: Python e Banco de Dados com Sqlite3 #1: Criando tabelas e inserindo dados
Desenvolver gráficos sem direção
Um gráfico undirected simplesmente mostra as ligações entre os nodos. A saída não fornece uma direção de um nó para o próximo. Por exemplo, ao estabelecer a conectividade entre as páginas web, sem direção está implícita. O exemplo seguinte mostra como criar um grafo não-dirigido.
importar NetworkX como matplotlib.pyplot nximport como PLTG = nx.Graph () H = nx.Graph () G.add_node (1) G.add_nodes_from ([2, 3]) G.add_nodes_from (gama (4, 7)) H .add_node (7) G.add_nodes_from (H) G.add_edge (1, 2) G.add_edge (1, 1) G.add_edges_from ([(2,3), (3,6), (4,6), (5,6)]) H.add_edges_from ([(4,7), (5,7), (6,7)]) G.add_edges_from (H.edges ()) nx.draw_networkx (L) plt.show ()
Este exemplo baseia-se no gráfico, utilizando um número de técnicas diferentes. Ela começa importando o pacote NetworkX. Para criar um novo grafo não direcionado, o código chama o Gráfico() construtor, que pode tomar uma série de argumentos de entrada para usar como atributos. No entanto, você pode construir um gráfico perfeitamente utilizável sem o uso de atributos, que é o que este exemplo faz.
A maneira mais fácil de adicionar um nó é chamar add_node () com um número de nó. Você também pode adicionar uma lista, dicionário, ou alcance() de nodos usando add_nodes_from (). Na verdade, você pode importar os nós de outros gráficos se quiser.
Mesmo que os nós usados no exemplo contar com números, você não tem que usar números para os seus nódulos. Um nó pode usar uma única letra, uma corda, ou mesmo uma data. Nós temos algumas restrições. Por exemplo, você não pode criar um nó usando um valor booleano.
Nós não temos nenhuma conectividade no início. Você deve definir conexões (arestas) entre eles. Para adicionar uma única aresta, você chama add_edge () com os números dos nós que você deseja adicionar. Tal como acontece com nós, você pode usar add_edges_from () para criar mais do que uma extremidade utilizando uma lista, dicionário, ou outro gráfico como entrada. Aqui está o resultado deste exemplo (sua saída pode ser ligeiramente diferente, mas deve ter as mesmas conexões).
Video: Excel - Utilizando segmentação de dados na tabela dinâmica e gráfico
Desenvolver grafos dirigidos
Você usa grafos dirigidos quando você precisa mostrar uma direção, digamos, de um ponto de partida para um ponto final. Quando você obter um mapa que mostra como para ir de um ponto específico para outro, o nó inicial e nó terminando são marcadas como tal e as linhas entre esses nós (e todos os nós intermediários), mostram direção.
Seus gráficos não precisa ser chato. Você pode vesti-los em todos os tipos de formas para que o espectador ganha mais informações de maneiras diferentes. Por exemplo, você pode criar etiquetas personalizadas, use cores específicas para determinados nós, ou depender de cor para ajudar as pessoas a ver o significado por trás de seus gráficos.
Você também pode alterar borda espessura da linha e usar outras técnicas para marcar um caminho específico entre nós como o melhor deles escolher. O exemplo a seguir mostra muitos (mas não quase todas) as maneiras em que você pode vestir-se um grafo dirigido e torná-lo mais interessante:
importar NetworkX como matplotlib.pyplot nximport como PLTG = nx.DiGraph () G.add_node (1) G.add_nodes_from ([2, 3]) G.add_nodes_from (gama (4, 6)) G.add_path ([6, 7 , 8]) G.add_edge (1, 2) G.add_edges_from ([(1,4), (4,5), (2,3), (3,6), (5,6)]) = cores [ `r`, `g`, `g`, `g`, `g`, `m`, `m`, `r`] etiquetas = {1: `Iniciar`, 2: `2`, 3: `3`, 4: `4`, 5: `5`, 6: `6`, 7: `7`, 8: `Fim`} tamanhos = [800, 300, 300, 300, 300, 600, 300 , 800] nx.draw_networkx (L, node_color = cores, node_shape = `D`, with_labels = True, etiquetas = etiquetas, node_size = tamanhos) plt.show ()
O exemplo que se começa com a criação de um gráfico direccional utilizando o Dígrafo() construtor. Você deve observar que o pacote NetworkX também suporta Multigraph () e MultiDiGraph () tipos de gráfico. Confira esta lista de todo o tipos de gráficos.
Adicionar nós é muito parecido com trabalhar com um grafo não direcionado. Você pode adicionar nós individuais usando add_node () e vários nós usando add_nodes_from (). o add_path () chamada permite criar nós e arestas, ao mesmo tempo. A ordem de nós na chamada é importante. O fluxo de um nó para outro é a partir da esquerda para a direita na lista fornecida à chamada.
Adição de arestas é o mesmo que trabalhando com um grafo não-dirigido, também. Você pode usar add_edge () para adicionar uma única aresta ou add_edges_from () para adicionar múltiplas arestas de uma só vez. No entanto, a ordem dos números de nós é importante. O fluxo vai desde o nó esquerdo para o nó direito em cada par.
Este exemplo adiciona cores especiais nó, etiquetas, forma (apenas uma forma é usado), e tamanhos para a saída. Você ainda chamar draw_networkx () para executar a tarefa. No entanto, adicionando os parâmetros mostrados muda a aparência do gráfico. Note que você deve definir with_labels para Verdade a fim de ver os rótulos fornecidos pelo etiquetas parâmetro. Aqui é a saída deste exemplo.