Створення графіків і діаграм за допомогою Python в Excel

Застосовується до
Excel для Microsoft 365 Excel для Microsoft 365 для Mac

Відомості про доступність див. в статті " Доступність Python в Excel". Якщо у вас виникли будь-які проблеми з Python в Excel, повідомте про них, вибравши Відгукпродовідку> в Excel.

Ще не використовували Python в Excel? Почніть із вступу до Python в Excel і Почніть роботу з Python в Excel.

Використовуйте бібліотеки Python з відкритим кодом для створення графіків і діаграм

Python в Excel постачається з основним набором бібліотек Python від Anaconda. У цій статті описано, як використовувати бібліотеки Python, як-от seaborn і Matplotlib, для створення графіків і діаграм. Докладні відомості про бібліотеки з відкритим кодом, доступні за допомогою Python в Excel, див. в статті "Бібліотеки з відкритим кодом" і "Python в Excel".

У прикладах у цій статті використовується набір даних із квіток ірису. Завантажте цей зразок книги, щоб переглянути статтю python-in-excel-iris-dataset.xlsx.

Створіть парний сюжет із seaborn

У цьому прикладі показано, як створити графічне відображення парного графіка для набору даних квітки ірису. Парна діаграма – це матриця графіків і діаграм, у якій порівнюються зв'язки між змінними в наборі даних. У цьому випадку набір даних про квітку ірису містить чотири стовпці числових даних: sepal_length, sepal_width, petal_length та petal_width.

Використовуйте Python в Excel, щоб створити парну графік за допомогою бібліотеки seaborn.

Python в Excel створює візуалізацію за допомогою бібліотеки seaborn. Бібліотека seaborn автоматично імпортується для Python в Excel із такою інструкцією імпорту, що дає змогу посилатися на неї з псевдонімом sns.

import seaborn as sns

Щоб створити парний графік набору даних квітки ірису з бібліотекою seaborn, зробіть такі дії:

  1. Введіть наведений нижче фрагмент коду в клітинку Python в Excel. Фрагмент коду зберігає парну графік як змінну під назвою pairplot. Він створює парний графік з псевдонімом sns бібліотеки seaborn і парною графікою з функцією seaborn.

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

    Як аргумент для функції pairplot фрагмент коду використовує спеціальну функцію Python xl() і посилається на першу таблицю на аркуші, Таблиця1. Він включає весь вміст таблиці (як [#All]) і зазначає, що таблиця містить рядок заголовка (як headers=True). У цьому прикладі таблиця 1 на аркуші містить набір даних "Райдужна оболонка".

    Перегляньте попередній перегляд парного графіка в DataFrame.

    Примітка.

    Якщо виникнуть будь-які помилки, докладні відомості див. в статті Виправлення помилок Python в Excel .

  2. Після збереження формули Python функція Python в Excel повертає графічне відображення парної побудови в об'єкті зображення. Клацніть піктограму картки в клітинці об'єкта зображення, щоб попередньо переглянути графічне відображення.

    Попередній перегляд графіка на картці DataFrame.

  3. Збережіть візуалізацію як об'єкт зображення, щоб і надалі використовувати її для обчислень на Python. Видобудьте зображення до сітки Excel, щоб змінити його розмір і переглянути кожну ділянку з більшими подробицями. Щоб витягти зображення до сітки, клацніть правою кнопкою миші або натисніть Ctrl+клацніть на клітинці, яка містить об'єкт зображення, і виберіть у меню пункт Відображати графік поверх клітинок .

    Додаткові відомості про видобування об'єктів зображення див. в розділі " Видобування об'єкта зображення до сітки Excel " цієї статті.

Створення точкової діаграми за допомогою Matplotlib

У цьому прикладі описано, як створити точкову діаграму на основі зразка даних квітки ірису. На точковій діаграмі відображається відношення між двома числовими змінними в наборі даних. У прикладі створюється точкова діаграма, яка виглядає так, як показано на знімку екрана нижче, на якій порівнюються значення sepal_width та sepal_length .

Використовуйте Python в Excel, щоб створити точкову діаграму за допомогою бібліотеки matplotlib.

Python в Excel створює візуалізацію за допомогою бібліотеки з відкритим кодом Matplotlib . Бібліотека Matplotlib автоматично імпортується для Python в Excel із наведеним нижче оператором імпорту, що дає змогу посилатися на неї як на plt.

import matplotlib.pyplot as plt

Щоб створити точкову діаграму набору даних квітки ірису за допомогою бібліотеки Matplotlib, зробіть ось що:

  1. У клітинці Python в Excel скористайтеся функцією Matplotlib і введіть sepal_length та sepal_width стовпці набору даних Iris як аргументи. У цьому прикладі таблиця 1 на аркуші містить набір даних "Райдужна оболонка".

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

  2. Додайте підписи та назву до точкової діаграми.

    # 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')

    Примітка.

    Ви можете додати цей фрагмент коду як додатковий рядок коду після формули Python на попередньому кроці в тій самій клітинці Excel або ввести його в новій клітинці Python в Excel книги. Якщо ви вирішите ввести його в нову клітинку, обов'язково дотримуйтеся правил основного порядку обчислення та вводьте його після першої клітинки.

  3. Після збереження формул Python функція Python в Excel повертає візуалізацію точкової діаграми як графічний об'єкт. Клацніть піктограму картки в клітинці об'єкта зображення, щоб попередньо переглянути графічне відображення.

    Попередній перегляд точкової діаграми в DataFrame.

    Примітка.

    Якщо виникнуть будь-які помилки, докладні відомості див. в статті Виправлення помилок Python в Excel .

  4. Збережіть візуалізацію як графічний об'єкт, щоб і надалі використовувати її для обчислень Python. Видобудьте зображення до сітки Excel, щоб змінити його розмір і переглянути детальніше схему. Щоб витягти зображення до сітки, клацніть правою кнопкою миші або натисніть Ctrl+клацніть на клітинці, яка містить об'єкт зображення, і виберіть у меню пункт Відображати графік поверх клітинок .

    Додаткові відомості про видобування об'єктів зображення див. в розділі " Видобування об'єкта зображення до сітки Excel " цієї статті.

Видобування об'єкта зображення до сітки Excel

Як показано на прикладах у цій статті, бібліотеки Python, як-от seaborn і Matplotlib, можуть повертати візуалізації даних у клітинки Excel. За замовчуванням функція Python в Excel повертає ці графічні відображення як об'єкти зображень.

Клацніть піктограму картки в клітинці об'єкта зображення, щоб попередньо переглянути графічне відображення.

Попередній перегляд графіка на картці DataFrame.

Видобути зображення до сітки Excel можна двома способами: відобразити його як графік над клітинками або відобразити в клітинці.

Відобразити зображення поверх клітинок

Щоб відобразити зображення як графік над клітинками, виконайте такі дії:

  1. Клацніть правою кнопкою миші або Ctrl+клацніть на клітинці, яка містить об'єкт зображення, і виберіть у меню пункт «Відображати графік над клітинками » (або скористайтеся комбінацією клавіш Ctrl+Alt+Shift+C). Так ви створите копію зображення, яка переміщатиметься по сітці Excel, розмір якої можна легко змінити. Вихідний графічний об'єкт залишається у вихідній клітинці.

  2. Виділіть і перетягніть зображення сюжету, щоб перемістити його по аркушу. Виділіть і перетягніть вузли в кутах і по боках зображення, щоб змінити його розмір.

    Створення переміщуваного графічного відображення побудови за допомогою піктограми

Відображення зображення в клітинці

Щоб відобразити зображення в клітинці, зробіть ось що:

  1. Повертає об'єкт зображення як значення Excel. Виберіть клітинку об'єкта зображення, перейдіть до меню виводу Python у рядку формул і виберіть Значення Excel.

    Скористайтеся меню виводу Python поруч із рядком формул, щоб змінити тип виводу.

    Зображення побудови тепер відображатиметься в клітинці.

    Порада.

    Щоб переключити результати формули Python між об'єктами Python і значеннями Excel, скористайтеся сполученням клавіш Ctrl+Alt+Shift+M. Додаткові відомості про сполучення клавіш див. у статті "Сполучення клавіш у Python в Excel".

  2. Розмір зображення побудови залежить від розміру клітинки. Збільште розмір зображення за рахунок збільшення розміру клітинки або об'єднання клітинок.

Використання різних шрифтів для мов (окрім англійської)

Для створення даних діаграми, у яких використовуються символи іншого алфавіту (наприклад, китайської, корейської або тайської), скористайтеся excel.FontPath. За замовчуванням функція Python в Excel відображає символи, відмінні від латинського алфавіту, як порожній квадрат ('□'). Щоб вирішити цю проблему, excel.FontPath дозволяє використовувати excel модуль для виклику іншого шрифту та рендерінгу символів.

Доступні такі шрифти: Атрибут додається excel.FontPath до вашого коду Python. Шлях посилається на файл шрифту, викликаний атрибутом.

Attribute (Атрибут) Шлях
БЕНГАЛІ /usr/share/fonts/Vrinda.ttf
CHINESE_SIMPLIFIED /usr/share/fonts/SimSun.ttf
CHINESE_TRADITIONAL /usr/share/fonts/MingLiU.ttf
ХІНДІ /usr/share/fonts/Mangal.ttf
ЯПОНСЬКА /usr/share/fonts/Meiryo.ttf
КОРЕЙСЬКА /usr/share/fonts/Batang.ttf
ТАЙСЬКИЙ ТАЙ /usr/share/fonts/THSarabunPSK.ttf

Використовуйте програму Excel. FontPath to display simplified Chinese plot labels

На знімку екрана нижче показано діаграму з підписами схеми, написаними спрощеними китайськими ієрогліфами за допомогою excel.FontPath. Зразок коду після скріншота демонструє, як за допомогою excel.FontPath.CHINESE_SIMPLIFIED відображення символів зі спрощеної бібліотеки китайської мови.

Таблиця з правильним відображенням символів

Зразок коду за допомогою excel. FontPath (Шлях шрифту)

У цьому зразку коду показано, як створити excel.FontPath.CHINESE_SIMPLIFIED графік, і спрощені китайські ієрогліфи в підписах сюжету, показаних на попередньому знімку екрана.

-

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()