Excel プロットとグラフで Python を作成する
Python in Excel は現在プレビュー段階であり、フィードバックに基づいて変更される可能性があります。 この機能を使用するには、Microsoft 365 Insider Program に参加し、ベータ チャネル Insider レベルを選択します。
Python in Excel は、ベータ チャネルを使用して、Excel for Windows ユーザーに段階的に展開されています。 現時点では、この機能は他のプラットフォームでは使用できません。
Python in Excel で問題が発生した場合は、Excel で [ヘルプ]、[フィードバック] の順に選択し、問題を報告してください。
Python in Excel を初めて使用する場合は、 「 Excel での Python の概要 」と「Excel での Python の概要」から始めます。
オープンソースの Python ライブラリを使用してプロットとグラフを作成する
Excel の Python には、 Anaconda によって提供される Python ライブラリのコア セットが付属しています。 この記事では、seabornや matplotlib などの Python ライブラリを使用してプロットとグラフを作成する方法について説明します。 Excel で Python で使用できるオープン ソース ライブラリの詳細については、「Excel の オープンソース ライブラリと Python」を参照してください。
この記事の例では、Iris フラワー データ セットを使用します。 このサンプル ブックをダウンロードして、「 python-in-excel-iris-dataset.xlsx」という記事に従います。
シーボーンを使用してペア プロットを作成する
この例では、Iris フラワー データ セットのペア プロット視覚化を作成する方法を示します。 ペア プロットは、データ セット内の各変数間のリレーションシップを比較するプロットとグラフのマトリックスです。 この場合、Iris フラワー データ セットには、sepal_length、sepal_width、petal_length、petal_widthの 4 つの数値データ列が含まれます。
Excel の Python は 、シーボーンライブラリを使用して視覚化を作成します。 seabornライブラリは、次の import ステートメントを使用して Excel の Python 用に自動的にインポートされ、エイリアス sns で参照 できます。
import seaborn as sns
Seaborn ライブラリを使用して Iris フラワー データ セットのペア プロットを作成するには、次の手順を実行します。
-
[Excel の Python] セルに次のコード スニペットを入力します。 コード スニペットは、ペア プロットを pairplot と呼ばれる変数として格納します。 これは、シーボーンライブラリエイリアス sns とシーボーン関数ペアプロットを使用して ペアプロットを作成します。
pairplot = sns.pairplot(xl("Table1[#All]", headers=True))pairplot 関数の引数として、コード スニペットはカスタム Python 関数 xl() を使用し、ワークシートの最初のテーブル Table1 を参照します。 これには、テーブルの内容全体 ( [#All] として) が含まれており、テーブルにヘッダー行 ( headers=True として) が含まれていることに注意してください。 この例では、ワークシートの Table1 に Iris データセットが含まれています。
注: エラーが発生した場合は、「 Excel エラーの Python のトラブルシューティング 」を参照してください。
-
Python 数式をコミットした後、Excel の Python は、イメージ オブジェクト内のペア プロットの視覚化を返します。 [image object]\(イメージ オブジェクト\) セルの [カード] アイコンを選択して、視覚化のプレビューを表示します。
-
視覚化を Image オブジェクトとして保持し、Python の計算に引き続き使用します。 画像を Excel グリッドに抽出してサイズを変更し、各プロットをより詳細に表示します。 グリッドに画像を抽出するには、イメージ オブジェクトを含むセルを右クリックまたは Ctrl キーを押しながらクリックし、メニューから [セルの上にプロットを表示] を選択します。
イメージ オブジェクトの抽出の詳細については、この記事の「 Excel グリッドへのイメージ オブジェクトの抽出 」セクションを参照してください。
Matplotlib を使用して散布図を作成する
この例では、Iris フラワー サンプル データ セットを使用して散布図を作成する方法について説明します。 散布図は、データ セット内の 2 つの数値変数間の関係を示します。 この例では、次のスクリーンショットのような散布図を作成し、 sepal_width と sepal_length 値を比較します。
Excel の Python では、 Matplotlibオープンソース ライブラリを使用して視覚化が作成されます。 Matplotlibライブラリは、次の import ステートメントを使用して Excel の Python 用に自動的にインポートされ、 plt として参照できます。
import matplotlib.pyplot as plt
Matplotlib ライブラリを使用して Iris フラワー データ セットの散布図を作成するには、次の手順を実行します。
-
Excel の Python セルで、matplotlib 散布関数を使用し、引数として Iris データ セットの sepal_length 列と sepal_width 列を入力します。 この例では、ワークシートの 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 セルに追加のコード行として追加することも、ブックの [Excel の新しい Python] セルに入力することもできます。 新しいセルに入力する場合は、行メジャーの計算順序ルールに従って、最初のセルの後に入力してください。
-
Python 数式をコミットすると、Excel の Python は散布図の視覚化をイメージ オブジェクトとして返します。 [image object]\(イメージ オブジェクト\) セルの [カード] アイコンを選択して、視覚化のプレビューを表示します。
注: エラーが発生した場合は、「 Excel エラーの Python のトラブルシューティング 」を参照してください。
-
視覚化をイメージ オブジェクトとして保持し、Python の計算に引き続き使用します。 画像を Excel グリッドに抽出してサイズを変更し、プロットをより詳細に表示します。 グリッドに画像を抽出するには、イメージ オブジェクトを含むセルを右クリックまたは Ctrl キーを押しながらクリックし、メニューから [ セルの上にプロットを表示] を選択します。
イメージ オブジェクトの抽出の詳細については、この記事の「 Excel グリッドへのイメージ オブジェクトの抽出 」セクションを参照してください。
Excel グリッドにイメージ オブジェクトを抽出する
この記事の例で示すように、seaborn や Matplotlib などの Python ライブラリは、Excel セルにデータの視覚化を返すことができます。 既定では、Excel の Python は、これらの視覚化をイメージ オブジェクトとして返します。
イメージ オブジェクト セルのカード アイコンを選択して、視覚化のプレビューを表示します。
Excel グリッドに画像を抽出するには、2 つの方法があります。画像をセル上のプロットとして表示するか、セル内に画像を表示します。
セル上に画像を表示する
次の手順に従って、イメージをセル上のプロットとして表示します。
-
イメージ オブジェクトを含むセルを右クリックまたは Ctrl キーを押しながらクリックし、メニューから [ セルにプロットを表示] を選択します (または、キーボード ショートカット Ctrl + Alt + Shift + C キーを使用します)。 これにより、Excel グリッド上に浮動し、簡単にサイズ変更できるイメージのコピーが作成されます。 元のイメージ オブジェクトは元のセルに残ります。
-
プロットイメージを選択してドラッグして、ワークシートの周囲に移動します。 イメージの角と辺にあるノードを選択してドラッグしてサイズを変更します。
セル内に画像を表示する
セル内に画像を表示するには、次の手順に従います。
-
イメージ オブジェクトを Excel 値として返します。 イメージ オブジェクトのセルを選択し、数式バーの [Python 出力] メニューに移動し、[ Excel 値] を選択します。
プロット画像がセル内に表示されるようになりました。ヒント: Python オブジェクトと Excel 値の間で Python 数式の結果を切り替えるには、キーボード ショートカット Ctrl + Alt + Shift + M を使用します。 キーボード ショートカットの詳細については、「Excel キーボード ショートカットの Python」を参照してください。
-
プロット イメージのサイズは、セルのサイズによって異なります。 セルのサイズを大きくするか、セルをマージして、イメージのサイズ を大きくします。
独自のプロットとグラフを作成する
サンプル データ セットを使用して Excel プロットとグラフで Python を作成する方法を学習したので、Excel ブックに独自のデータを入力し、カスタム視覚化を作成します。
Excel で Python で使用する外部データをインポートするには、Power Queryを使用します。 詳細については、「Excel で Python でPower Queryデータを使用する」を参照してください。