2016-07-17 36 views
1

編集:何が起こっているのか把握することができました。 Scatterには、散布図のプロット点を囲む線の太さを決定するパラメータ 'line-width'(lw = n)があります。私のプロットポイントはサイズ1(s = 1)なので、線幅は実際にはプロットポイントの色を覆っていたほど厚かった。線幅を0(lw = 0)の太さに設定すると、そのトリックを行う必要があります。matplotlibの3D散布図のデータポイントを色付けする方法

データポイントの3次元散布図を生成し、それらのy座標の値に基づいて色付けしたいと思いますが、ポイントを実際に色付けすることはできません。

データポイントの値が低い場合は、カラースペクトラムの青い端に近い色にする必要があります。値がより大きい場合、色はスペクトルの赤色端に近くなるはずです。

私は2Dでプロットすることができましたが、3Dでプロセスを複製することに問題があります。現在のコードは点を黒だけでプロットします。

ここでは3Dの試行のためのコードと、2Dでの希望の結果のスクリーンショットを示します。私はここで間違って何をしているのですか?

x_points、y_points、およびz_pointsは浮動小数点値のリストです。

import matplotlib.pyplot as plt 
from matplotlib import cm 
from mpl_toolkits.mplot3d import Axes3D 

def three_dimensional_scatterplot(
    self, x_points, y_points, z_points, data_file 
): 

    cm1 = cm.get_cmap('gist_rainbow') 

    fig = plt1.figure() 
    ax = fig.add_subplot(111, projection='3d') 
    ax.scatter(
     x_points, 
     y_points, 
     z_points, 
     s=1, 
     c=y_points, 
     cmap=cm1 
    ) 

    ax.set_xlabel('X axis') 
    plt1.show() 

enter image description here

答えて

1

あなたはここのようにプロットすることがあります。

import matplotlib.pyplot as plt 
from matplotlib import cm 
from mpl_toolkits.mplot3d import Axes3D 
import numpy as np 

x = np.random.rand(25) 
y = np.random.rand(25) 
z = np.random.rand(25) 

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
p3d = ax.scatter(x, y, z, s=30, c=y, cmap = cm.coolwarm) 
plt.show() 

enter image description here

+0

ガッチャは、私はサイズがここで決定する要因であったと思います。どうもありがとうございました。 – gsamerica