Python Matplotlibのサーフェスプロットで色を変更し、グリッド線を追加する方法
PythonのMatplotlibで作成した3Dサーフェスプロット(曲面図)の色を変更し、メッシュ状のグリッド線を追加したい場合、以下の手順で実現できます。
実装手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
numpyを使用して、x、y、hのデータポイントを生成します。
plt.figure()で新しい図を作成するか、既存の図をアクティブにします。手順3で作成したfigureから、3D用のAxesオブジェクトを取得します。
plot_surface()を使って、面の色・エッジの色・線幅を指定したサーフェスプロットを作成します。ここでは面をオレンジ系の色(orangered)、エッジを黄色に設定することで、格子状のグリッド線が視覚的に強調されます。
コード例
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.arange(-5, 5, 0.25) y = np.arange(-5, 5, 0.25) x, y = np.meshgrid(x, y) h = np.sin(x)*np.cos(y) fig = plt.figure() ax = Axes3D(fig) ax.plot_surface(x, y, h, rstride=10, cstride=10, color='orangered', edgecolors='yellow', lw=0.6) plt.show()
解説
このコードでは、np.meshgrid()によって生成した2次元グリッド上で sin(x) * cos(y) の値を計算し、波打つような3D曲面を描画しています。
ポイントとなる引数は以下の通りです。
rstride / cstride: 行方向・列方向の描画間隔を指定します。値を大きくするとメッシュが粗くなり、グリッド線がはっきりと見えます。
color: 曲面自体の塗りつぶし色を指定します(ここでは
'orangered')。edgecolors: 各面の境界線(グリッド線)の色を指定します(ここでは
'yellow')。この色のコントラストにより、グリッド線が明瞭に表示されます。lw: エッジ線の太さ(linewidth)です。細すぎると見えにくいため、0.6程度が視認性に適しています。
なお、最近のMatplotlibバージョンでは Axes3D(fig) の代わりに fig.add_subplot(projection='3d') を使う方法が推奨されています。
出力結果

-
Matplotlibのループプロットでマーカーとラインに同じ色を設定する方法
Matplotlibでループ処理により複数のデータ系列を描画する際、「マーカー」と「ライン」に同じ色を割り当てたい場面はよくあります。本記事では、そのための基本的な手順と、色を確実に揃えるための実践的な方法をコード例とともに解説します。 基本の手順 numpy を使用して m、n、x のデータポイントを初期化します。 figure() メソッドで新しい図を作成、または既存の図をアクティブ化します。 clf() メソッドで図をクリアします。 subplot() メソッドで現在の図にサブプロットを追加します。 itertools.cycle を利用して、複数種類のマーカーを順番に取得できるよう
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使