Criar gráficos com Python no Excel

Aplica-se a
Excel para Microsoft 365 Excel para Microsoft 365 para Mac

Para obter informações sobre disponibilidade, consulte Disponibilidade do Python no Excel. Se você encontrar alguma preocupação com o Python no Excel, relate-a selecionando Comentários de Ajuda> no Excel.

Novo no Python no Excel? Comece com Introdução ao Python no Excel e Introdução ao Python no Excel.

Use bibliotecas Python de código aberto para criar gráficos

Python no Excel vem com um conjunto principal de bibliotecas Python fornecidas pela Anaconda. Este artigo descreve como usar as bibliotecas Python, como seaborn e Matplotlib, para criar gráficos e gráficos. Para saber mais sobre as bibliotecas de código aberto disponíveis com Python no Excel, consulte Bibliotecas de código aberto e Python no Excel.

Os exemplos deste artigo usam o conjunto de dados da flor da íris. Baixe esta pasta de trabalho de exemplo para acompanhar o artigo: python-in-excel-iris-dataset.xlsx.

Crie um gráfico de pares com seaborn

Este exemplo mostra como criar uma visualização de gráfico de pares do conjunto de dados da flor da íris. Um gráfico de pares é uma matriz de gráficos que compara a relação entre cada variável em um conjunto de dados. Nesse caso, o conjunto de dados da flor da íris contém quatro colunas de dados numéricos: sepal_length, sepal_width, petal_length e petal_width.

Use Python no Excel para criar um gráfico de pares com a biblioteca seaborn.

Python no Excel cria a visualização com a biblioteca seaborn . A biblioteca seaborn é importada automaticamente para Python no Excel com a seguinte instrução de importação, permitindo que você faça referência a ela com o alias sns.

import seaborn as sns

Para criar um gráfico de pares do conjunto de dados da flor da íris com a biblioteca seaborn, execute as seguintes etapas:

  1. Insira o seguinte trecho de código em uma célula Python no Excel. O trecho de código armazena o gráfico de pares como uma variável chamada pairplot. Ele cria o gráfico de pares com o alias da biblioteca seaborn sns e a função seaborn pairplot.

    pairplot = sns.pairplot(xl("Table1[#All]", headers=True))

    Como argumento para a função pairplot , o trecho de código usa a função personalizada do Python xl() e faz referência à primeira tabela da planilha, a Tabela1. Ele inclui todo o conteúdo da tabela (como [#All]) e observa que a tabela inclui uma linha de cabeçalho (como headers=True). Neste exemplo, a Tabela1 na planilha contém o conjunto de dados Iris.

    Veja a visualização do gráfico de pares em um DataFrame.

    Observação

    Se você encontrar algum erro, consulte Solucionar problemas de erros do Python no Excel para obter mais informações.

  2. Depois de confirmar sua fórmula Python, o Python no Excel retorna a visualização de gráfico de pares em um objeto de imagem. Selecione o ícone de card na célula do objeto de imagem para ver uma visualização da visualização.

    Veja uma visualização do gráfico em um card DataFrame.

  3. Mantenha a visualização como um objeto Image para continuar a usá-la para cálculos do Python. Extraia a imagem para a grade do Excel para redimensioná-la e exibir cada gráfico com mais detalhes. Para extrair a imagem para a grade, clique com o botão direito do mouse ou Ctrl+clique na célula que contém o objeto de imagem e selecione Exibir Gráfico sobre Células no menu.

    Para obter informações adicionais sobre como extrair objetos de imagem, consulte a seção do artigo Extrair um objeto de imagem para a grade do Excel neste artigo.

Crie um gráfico de dispersão com Matplotlib

Este exemplo descreve como criar um gráfico de dispersão com o conjunto de dados de exemplo de flor da íris. Um gráfico de dispersão mostra a relação entre duas variáveis numéricas em um conjunto de dados. O exemplo cria um gráfico de dispersão semelhante à captura de tela a seguir, comparando os valores de sepal_width e sepal_length .

Use Python no Excel para criar um gráfico de dispersão com a biblioteca matplotlib.

Python no Excel cria a visualização com a biblioteca de código aberto Matplotlib . A biblioteca Matplotlib é importada automaticamente para Python no Excel com a instrução de importação a seguir, permitindo que você a referencie como plt.

import matplotlib.pyplot as plt

Para criar um gráfico de dispersão do conjunto de dados da flor da íris com a biblioteca Matplotlib, siga as seguintes etapas:

  1. Em uma célula Python no Excel, use a função de dispersão Matplotlib e insira as colunas sepal_length e sepal_width do conjunto de dados Iris como argumentos. Neste exemplo, a Tabela1 na planilha contém o conjunto de dados Iris.

    plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. Adicione rótulos e um título ao gráfico de dispersão.

    # Label the x and y axes of the plot.
    plt.xlabel('sepal_length')
    plt.ylabel('sepal_width')

    # Add a title to the plot.
    plt.title('Sepal length and width analysis')

    Observação

    Você pode adicionar esse trecho de código como uma linha de código adicional após a fórmula Python na etapa anterior, na mesma célula do Excel, ou pode inseri-lo em uma nova célula Python no Excel em sua pasta de trabalho. Se você optar por inseri-lo em uma nova célula, siga as regras de ordem de cálculo de linha principal e insira-o após a primeira célula.

  3. Depois de confirmar suas fórmulas Python, o Python no Excel retorna a visualização do gráfico de dispersão como um objeto de imagem. Selecione o ícone de card na célula do objeto de imagem para ver uma visualização da visualização.

    Exibir uma visualização do gráfico de dispersão em um DataFrame.

    Observação

    Se você encontrar algum erro, consulte Solucionar problemas de erros do Python no Excel para obter mais informações.

  4. Mantenha a visualização como um objeto de imagem para continuar a usá-la para cálculos do Python. Extraia a imagem para a grade do Excel para redimensioná-la e exibir o gráfico com mais detalhes. Para extrair a imagem para a grade, clique com o botão direito do mouse ou Ctrl+clique na célula que contém o objeto de imagem e selecione Exibir Gráfico sobre Células no menu.

    Para obter informações adicionais sobre como extrair objetos de imagem, consulte a seção do artigo Extrair um objeto de imagem para a grade do Excel neste artigo.

Extrair um objeto de imagem para a grade do Excel

Conforme demonstrado pelos exemplos deste artigo, as bibliotecas Python, como seaborn e Matplotlib, podem retornar visualizações de dados para células do Excel. Por padrão, o Python no Excel retorna essas visualizações como objetos de imagem.

Selecione o ícone de card em uma célula de objeto de imagem para ver uma visualização da visualização.

Veja uma visualização do gráfico em um card DataFrame.

Existem duas maneiras de extrair uma imagem para a grade do Excel: exibir a imagem como um gráfico sobre células ou exibir a imagem dentro de uma célula.

Exibir a imagem sobre células

Siga estas etapas para exibir a imagem como um gráfico sobre as células.

  1. Clique com o botão direito do mouse ou Ctrl+clique na célula que contém o objeto de imagem e selecione Exibir Gráfico sobre Células no menu (ou use o atalho de teclado Ctrl+Alt+Shift+C). Isso cria uma cópia da imagem que flutua sobre a grade do Excel e pode ser redimensionada facilmente. O objeto de imagem original permanece na célula original.

  2. Selecione e arraste a imagem do gráfico para movê-la pela planilha. Selecione e arraste os nós nos cantos e nas laterais da imagem para redimensioná-la.

    Crie uma visualização de plotagem flutuante com o ícone Criar referência.

Exibir a imagem dentro de uma célula

Siga estas etapas para exibir a imagem dentro de uma célula.

  1. Retorne o objeto de imagem como um valor do Excel. Selecione a célula objeto de imagem, vá para o menu de saída do Python na barra de fórmulas e selecione Valor do Excel.

    Use o menu de saída Python ao lado da Barra de Fórmulas para alterar o tipo de saída.

    A imagem de plotagem agora é exibida dentro da célula.

    Dica

    Para alternar os resultados da fórmula Python entre objetos Python e valores do Excel, use o atalho de teclado Ctrl+Alt+Shift+M. Para saber mais sobre atalhos de teclado, confira Atalhos de teclado do Python no Excel.

  2. O tamanho da imagem de plotagem depende do tamanho da célula. Aumente o tamanho da imagem aumentando o tamanho da célula ou mesclando células.

Use fontes diferentes para idiomas diferentes do inglês

Para traçar dados que usam caracteres do alfabeto não latino, como chinês, coreano ou tailandês, use excel.FontPath. Por padrão, o Python no Excel renderiza caracteres do alfabeto não latino como um quadrado vazio ('□'). Para resolver isso, excel.FontPath permite que você use o excel módulo para chamar uma fonte diferente e renderizar os caracteres.

As fontes a seguir estão disponíveis. O atributo é acrescentado ao excel.FontPath seu código Python. O caminho se refere ao arquivo de fonte chamado pelo atributo.

Atributo Caminho
BANGLA /usr/share/fonts/Vrinda.ttf
CHINESE_SIMPLIFIED /usr/share/fonts/SimSun.ttf
CHINESE_TRADITIONAL /usr/share/fonts/MingLiU.ttf
HINDI /usr/share/fonts/Mangal.ttf
JAPONÊS /usr/share/fonts/Meiryo.ttf
COREANO /usr/share/fonts/Batang.ttf
TAILANDÊS /usr/share/fonts/THSarabunPSK.ttf

Use o Excel. FontPath para exibir rótulos de plotagem em chinês simplificado

A captura de tela a seguir mostra um gráfico com rótulos de plotagem em caracteres chineses simplificados usando excel.FontPath. O exemplo de código após a captura de tela demonstra como usar excel.FontPath.CHINESE_SIMPLIFIED para exibir caracteres da biblioteca em chinês simplificado.

Gráfico com caracteres renderizando corretamente

Exemplo de código usando o Excel. FontPath

Este exemplo de código mostra como usar excel.FontPath.CHINESE_SIMPLIFIED para gerar o enredo e os caracteres chineses simplificados nos rótulos de enredo exibidos na captura de tela anterior.

-

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# Set the font path. This returns '/usr/share/fonts/simsun.ttf'.
font_path = excel.FontPath.CHINESE_SIMPLIFIED

# Point the properties to the font path.
font_properties = FontProperties(fname=font_path)
plt.rcParams['font.family'] = font_properties.get_name()

# Make the plot.
myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文')

# Show the plot.
plt.show()