Criar gráficos com o 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 encontrar quaisquer problemas com o Python no Excel, comunique-os ao selecionar Feedback da Ajuda> no Excel.

É a primeira vez que utiliza o Python no Excel? Comece com Introdução ao Python no Excel e Comece a utilizar o Python no Excel.

Utilizar bibliotecas Python open source para criar gráficos

O Python no Excel vem com um conjunto básico de bibliotecas Python fornecidas pelo Anaconda. Este artigo descreve como usar 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 o Python no Excel, consulte Bibliotecas de código aberto e Python no Excel.

Os exemplos neste artigo utilizam o conjunto de dados da flor de Iris. Transfira este livro de exemplo para acompanhar o artigo: python-in-excel-iris-dataset.xlsx.

Criar um terreno de pares com seaborn

Este exemplo mostra como criar uma visualização de gráfico de par do conjunto de dados da flor de Iris. Um gráfico de pares é uma matriz de gráficos que compara a relação entre cada variável num conjunto de dados. Neste 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.

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

O 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 import, permitindo-lhe consultá-la com o alias sns.

import seaborn as sns

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

  1. Introduza o seguinte fragmento de código numa célula do Python no Excel. O trecho de código armazena o gráfico de par como uma variável chamada pairplot. Ele cria o gráfico de pares com o alias sns da biblioteca seaborn 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 Python personalizada xl() e faz referência à primeira tabela na planilha, Table1. Inclui todo o conteúdo da tabela (como [#All]) e nota 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 pré-visualização de desenho de pares num DataFrame.

    Nota

    Se encontrar algum erro, consulte Resolver problemas do Python no Excel para obter mais informações.

  2. Depois de consolidar a sua fórmula Python, o Python no Excel devolve a visualização de gráfico de pares num objeto de imagem. Selecione o ícone de cartão na célula de objeto de imagem para ver uma pré-visualização da visualização.

    Veja uma pré-visualização do gráfico num cartão DataFrame.

  3. Mantenha a visualização como um objeto Image para continuar a utilizá-la para cálculos Python. Extraia a imagem para a grelha do Excel para a redimensionar e ver cada gráfico com mais detalhe. 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 da imagem e selecione Exibir Plotagem sobre Células no menu.

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

Criar 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 de Iris. Um gráfico de dispersão mostra a relação entre duas variáveis numéricas num conjunto de dados. O exemplo cria um gráfico de dispersão semelhante à captura de ecrã seguinte, comparando os valores sepal_width e sepal_length .

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

O 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 seguinte instrução import, permitindo que você faça referência a ela como plt.

import matplotlib.pyplot as plt

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

  1. Numa célula do Python no Excel, utilize a função de dispersão Matplotlib e introduza 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 etiquetas 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')

    Nota

    Pode adicionar este fragmento de código como uma linha de código adicional após a fórmula Python no passo anterior, na mesma célula do Excel, ou pode introduzi-lo numa nova célula do Python no Excel no seu livro. Se optar por introduzi-la numa nova célula, certifique-se de que segue as regras de ordem de cálculo das linhas principais e que a introduz depois da primeira célula.

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

    Veja uma pré-visualização do gráfico de dispersão num DataFrame.

    Nota

    Se encontrar algum erro, consulte Resolver problemas do Python no Excel para obter mais informações.

  4. Mantenha a visualização como um objeto de imagem para continuar a utilizá-la para cálculos Python. Extraia a imagem para a grelha do Excel para a redimensionar e ver a parcela com mais detalhe. 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 da imagem e selecione Exibir Plotagem sobre Células no menu.

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

Extrair um objeto de imagem para a grelha do Excel

Conforme demonstrado nos exemplos apresentados neste artigo, as bibliotecas Python como seaborn e Matplotlib podem devolver visualizações de dados a células do Excel. Por predefinição, o Python no Excel devolve estas visualizações como objetos de imagem.

Selecione o ícone de cartão numa célula de objeto de imagem para ver uma pré-visualização da visualização.

Veja uma pré-visualização do gráfico num cartão DataFrame.

Existem duas formas de extrair uma imagem para a grelha do Excel: apresentar a imagem como um desenho sobre células ou apresentar a imagem dentro de uma célula.

Apresentar a imagem sobre as células

Siga estes passos para apresentar a imagem como um desenho sobre células.

  1. Clique com o botão direito do rato ou Ctrl+clique na célula que contém o objeto de imagem e selecione Apresentar Desenho sobre Células no menu (ou utilize o atalho de teclado Ctrl+Alt+Shift+C). Esta ação cria uma cópia da imagem que flutua sobre a grelha do Excel e que pode ser redimensionada facilmente. O objeto da imagem original permanece na célula original.

  2. Selecione e arraste a imagem de desenho para movê-la pela folha de cálculo. Selecione e arraste os nós nos cantos e lados da imagem para redimensioná-la.

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

Apresentar a imagem numa célula

Siga estes passos para apresentar a imagem numa célula.

  1. Devolver o objeto de imagem como um valor do Excel. Selecione a célula de objeto de imagem, aceda ao 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 do desenho é agora apresentada dentro da célula.

    Sugestão

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

  2. O tamanho da imagem de desenho depende do tamanho da célula. Aumente o tamanho da imagem ao aumentar o tamanho da célula ou ao unir células.

Utilizar tipos de letra diferentes para idiomas que não sejam o inglês

Para criar gráficos de dados que utilizem carateres do alfabeto não latino, como chinês, coreano ou tailandês, utilize excel.FontPath. Por predefinição, o Python no Excel compõe carateres 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.

Estão disponíveis os seguintes tipos de letra. O atributo é acrescentado ao excel.FontPath seu código Python. O caminho refere-se ao ficheiro de tipo de letra chamado pelo atributo.

Atributo Caminho
BENGALI /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

Utilize o Excel. FontPath para apresentar etiquetas de desenho em chinês simplificado

A captura de ecrã seguinte mostra um gráfico com etiquetas de desenho em carateres chineses simplificados utilizando 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 de chinês simplificado.

Gráfico com carateres a ser apresentados corretamente

Exemplo de código utilizando o Excel. FontPath

Este exemplo de código mostra como usar excel.FontPath.CHINESE_SIMPLIFIED para gerar o gráfico e os caracteres chineses simplificados nos rótulos de gráfico que são 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()