Matplotlib を使った 3D ボクセルプロットの作成

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python の Matplotlib ライブラリを使用して 3D ボクセルプロットを作成するプロセスを案内します。ボクセルプロットは、3D データを明確かつ美しく視覚化するのに役立ちます。この実験では、Axes3D.voxels 関数を使用して、2 つの立方体とそれらをつなぐリンクのボクセルプロットを作成します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook を開いて練習を行ってください。

場合によっては、Jupyter Notebook の読み込みが完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題が発生した場合は、Labby に質問してください。セッション終了後にフィードバックを提供していただければ、迅速に問題を解決します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} matplotlib/figures_axes -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/lists -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/tuples -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/build_in_functions -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/importing_modules -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/numerical_computing -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} python/data_visualization -.-> lab-49028{{"Matplotlib を使った 3D ボクセルプロットの作成"}} end

必要なライブラリをインポートする

まず、必要なライブラリをインポートする必要があります。この場合、Matplotlib と NumPy を使用します。

import matplotlib.pyplot as plt
import numpy as np

座標を準備する

次に、ボクセルプロットの座標を準備します。NumPy の indices 関数を使用して、8x8x8 の点のグリッドを作成します。

x, y, z = np.indices((8, 8, 8))

立方体とリンクを作成する

ここで、2 つの立方体とそれらをつなぐリンクを作成します。これは、3 つのブール配列を定義し、それらを 1 つのブール配列に結合することで行います。最初の 2 つの配列は立方体の位置を定義し、3 つ目の配列はリンクの位置を定義します。

cube1 = (x < 3) & (y < 3) & (z < 3)
cube2 = (x >= 5) & (y >= 5) & (z >= 5)
link = abs(x - y) + abs(y - z) + abs(z - x) <= 2

voxelarray = cube1 | cube2 | link

色を設定する

ここで、ボクセルプロット内の各オブジェクトの色を設定します。これは、手順 3 で作成したブール配列と同じ形状の空の配列を作成し、各オブジェクトの位置に基づいて色を設定することで行います。

colors = np.empty(voxelarray.shape, dtype=object)
colors[link] = 'red'
colors[cube1] = 'blue'
colors[cube2] = 'green'

ボクセル配列をプロットする

最後に、Axes3D.voxels 関数を使用して、指定された色でボクセル配列をプロットできます。

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(voxelarray, facecolors=colors, edgecolor='k')

plt.show()

まとめ

この実験では、Python の Matplotlib ライブラリを使用して 3D ボクセルプロットを作成する方法を学びました。プロットの座標を準備し、立方体とリンクを作成し、各オブジェクトの色を設定し、Axes3D.voxels 関数を使用してボクセル配列をプロットしました。ボクセルプロットは 3D データを視覚化する便利な方法であり、Matplotlib を使えば簡単に作成できます。