資料視覺化程式問題
在資料視覺化的程式中,對於X[y == label, 0] 這部份的程式不太理解,
y == label, 會產生boolean mask , 但為何後面加一個0, 之後的結果就變成
全是0,另外X[y == label, 1].mean() + 1.5, 此處加1.5的目的是什麼呢?
for name, label in [('Setosa', 0), ('Versicolour', 1), ('Virginica', 2)]:
ax.text3D(X[y == label, 0].mean(),
X[y == label, 1].mean() + 1.5,
X[y == label, 2].mean(), name,
horizontalalignment='center',
bbox=dict(alpha=.5, edgecolor='w', facecolor='w'))
回答列表
-
2019/11/03 下午 05:52Yu Chen Lin贊同數:1不贊同數:0留言數:2
我覺得你應該是誤會ax.text3D的用意了,這個作用是在畫出來的圖上加上一段文字,要給定要加上文字的座標,因此:
ax.text3D(X[y == label, 0].mean(),
X[y == label, 1].mean() + 1.5,
X[y == label, 2].mean(),
前面這三個X[]是在給他(x,y,z)的座標,所以總的用意就是,給定y==label就可以定義現在要畫的是哪一群,然後給定要加上文字的座標,這邊是每一群的(x,y,z)座標點的平均X[].mean(),
然後在Y座標上多加1.5你就會看到標示在3D圖上面的字會往Y平均點多移動1.5,把座標軸標上去可能會比較清楚:
我記得前幾天有個範例有把平均的點也畫上去,你可以把那段code加上去把平均點也畫出來可能會更清楚
-
2019/11/04 下午 05:43張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
「為何後面加一個 0 」=> 是選出第一個欄位的資料,也許你可以把 先把原本的資料印出來看看