Создание графиков и диаграмм Для Python в Excel
Applies To
Excel для Microsoft 365Python в Excel теперь доступен для корпоративных и бизнес-пользователей, работающих с Текущим каналом в Windows, начиная с версии 2407 (сборка 17830.20128) и Monthly Enterprise Channel в Windows, начиная с версии 2408 (сборка 17928.20216). Он доступен в предварительной версии для семейных и личных пользователей, работающих с Текущим каналом в Windows, начиная с версии 2405 (сборка 17628.20164). Python в Excel доступен в предварительной версии для пользователей образовательных учреждений, работающих с текущим каналом (предварительная версия) в рамках программы предварительной оценки Microsoft 365. В настоящее время он недоступен для Semi-Annual Enterprise Channel.
Сначала он развертывается в Excel для Windows, а затем на других платформах позже. Дополнительные сведения о доступности см. в статье Доступность 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. Библиотека seabornавтоматически импортируется для Python в Excel с помощью следующей инструкции import, что позволяет ссылаться на нее с помощью псевдонима sns.
import seaborn as sns
Чтобы создать парный график набора данных цветка ириса с помощью библиотеки морских видов, сделайте следующее:
-
Введите следующий фрагмент кода в ячейку Python в Excel. Фрагмент кода сохраняет график пары в виде переменной с именем pairplot. Он создает диаграмму пары с псевдонимом sns библиотеки морского происхождения и морской функцией pairplot. pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) В качестве аргумента для функции pairplot фрагмент кода использует пользовательскую функцию Python xl() и ссылается на первую таблицу на листе Table1. Он включает все содержимое таблицы (как [#All]) и отмечает, что таблица содержит строку заголовка (как headers=True). В этом примере таблица Table1 на листе содержит набор данных Iris.
Примечание: При возникновении ошибок дополнительные сведения см. в разделе Устранение ошибок Python в Excel.
-
После фиксации формулы Python Python в Excel возвращает визуализацию парного графика в объекте изображения. Выберите значок карточки в ячейке объекта изображения для предварительного просмотра визуализации.
-
Оставьте визуализацию как объект Image, чтобы продолжать использовать ее для вычислений Python. Извлеките изображение в сетку Excel, чтобы изменить его размер и просмотреть каждый график более подробно. Чтобы извлечь изображение в сетку, щелкните правой кнопкой мыши или ctrl +щелкните ячейку, содержащую объект изображения, и выберите в меню пункт Показать график над ячейками.
Дополнительные сведения об извлечении объектов изображений см. в статье Извлечение объекта изображения в сетку Excel этой статьи.
Создание точечной диаграммы с помощью Matplotlib
В этом примере описывается создание точечной диаграммы с набором данных образца цветка ириса. Точечная диаграмма показывает связь между двумя числовыми переменными в наборе данных. В этом примере создается точечная диаграмма, которая выглядит, как показано на следующем снимку экрана, сравнивая значения sepal_width и sepal_length .
Python в Excel создает визуализацию с помощью библиотеки с открытым кодом Matplotlib. Библиотека Matplotlibавтоматически импортируется для Python в Excel со следующей инструкцией import, что позволяет ссылаться на нее как plt.
import matplotlib.pyplot as plt
Чтобы создать точечную диаграмму для набора данных цветка ириса с помощью библиотеки Matplotlib, сделайте следующее:
-
В ячейке Python в Excel используйте точечнуюфункцию Matplotlib и введите sepal_length и sepal_width столбцы набора данных Iris в качестве аргументов. В этом примере таблица Table1 на листе содержит набор данных Iris.plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))
-
Добавьте метки и заголовок в точечную диаграмму. # 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 в книге. Если вы решили ввести его в новую ячейку, обязательно следуйте правилам порядка вычисления крупных строк и введите его после первой ячейки.
-
После фиксации формул Python Python в Excel возвращает визуализацию точечной диаграммы в виде объекта изображения. Выберите значок карточки в ячейке объекта изображения для предварительного просмотра визуализации.
Примечание: При возникновении ошибок дополнительные сведения см. в разделе Устранение ошибок Python в Excel.
-
Оставьте визуализацию как объект изображения, чтобы продолжать использовать ее для вычислений Python. Извлеките изображение в сетку Excel, чтобы изменить его размер и просмотреть график более подробно. Чтобы извлечь изображение в сетку, щелкните правой кнопкой мыши или ctrl +щелкните ячейку, содержащую объект изображения, и выберите в меню пункт Показать график над ячейками.
Дополнительные сведения об извлечении объектов изображений см. в статье Извлечение объекта изображения в сетку Excel этой статьи.
Извлечение объекта изображения в сетку Excel
Как показано в примерах в этой статье, библиотеки Python, такие как seaborn и Matplotlib, могут возвращать визуализации данных в ячейки Excel. По умолчанию Python в Excel возвращает эти визуализации в виде объектов изображений.
Щелкните значок карта в ячейке объекта изображения, чтобы просмотреть предварительный просмотр визуализации.
Существует два способа извлечения изображения в сетку Excel: отображение изображения в виде диаграммы над ячейками или отображение изображения в ячейке.
Отображение изображения по ячейкам
Выполните следующие действия, чтобы отобразить изображение в виде диаграммы над ячейками.
-
Щелкните правой кнопкой мыши или ctrl+ щелкните ячейку, содержащую объект изображения, и выберите в меню пункт Показать график над ячейками (или используйте сочетание клавиш CTRL+ALT+SHIFT+C). При этом создается копия изображения, которая перемещается по сетке Excel и может быть легко изменена. Исходный объект изображения остается в исходной ячейке.
-
Выделите и перетащите изображение диаграммы, чтобы переместить его по листу. Выделите и перетащите узлы в углах и сторонах изображения, чтобы изменить его размер.
Отображение изображения в ячейке
Выполните следующие действия, чтобы отобразить изображение в ячейке.
-
Возвращает объект изображения в виде значения Excel. Выберите ячейку объекта изображения, перейдите в меню Выходные данные Python в строке формул и выберите Значение Excel.
Изображение диаграммы теперь отображается в ячейке.Совет: Чтобы переключать результаты формул Python между объектами Python и значениями Excel, используйте сочетание клавиш CTRL+ALT+SHIFT+M. Дополнительные сведения о сочетаниях клавиш см. в статье Сочетания клавиш Python в Excel.
-
Размер изображения диаграммы зависит от размера ячейки. Увеличьте размер изображения путем увеличения размера ячейки или путем слияния ячеек.
Использование разных шрифтов для языков, отличных от английского
Для диаграммы данных, использующих символы нелатинского алфавита, например китайский, корейский или тайский, используйте excel.FontPath. По умолчанию Python в Excel отображает символы нелатинского алфавита в виде пустого квадрата ("□"). Чтобы устранить эту проблему, excel.FontPath позволяет использовать модуль excel для вызова другого шрифта и отображения символов.
Доступны следующие шрифты. Атрибут добавляется к excel.FontPath в коде Python. Путь ссылается на файл шрифта, вызываемый атрибутом .
Атрибут |
Путь |
---|---|
БЕНГАЛЬСКИЙ |
/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 для отображения меток графиков на упрощенном китайском языке
На следующем снимке экрана показана диаграмма с метками графиков на упрощенном китайском языке с использованием 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()