作者 | Prasad Ostwal
譯者 | 高級農民工
我們的大腦通常最多能感知三維空間,超過三維就很難想象了。盡管是三維,理解起來也很費勁,所以大多數情況下都使用二維平面。
來自維基百科
不過,我們仍然可以繪制出多維空間,今天就來用 Python 的 plotly 庫繪制下三維到六維的圖,看看長什么樣。
數據我們使用一份來自 UCI 的真實汽車數據集,該數據集包括 205 個樣本和 26 個特征,從中選擇 6 個特征來繪制圖形:
?
基礎工作
?
安裝好 plotly 包:
?
加載數據集(文末會提供):
?
下面我們先繪制基礎的二維圖表,使用兩個 RPM 和 Speed 兩個特征即可:
?
繪制 2-D 圖
?
代碼實現如下:
?
保存為 HTML 文件打開可以生成交互界面,也可以保存為 PNG 圖片。
下面增加特征來繪制三維圖。
?
繪制 3-D 圖
?
可以使用 plotly 的 plot.Scatter3D 方法繪制三維圖:
代碼實現如下:
?
如何繪制更高維度的圖呢?顯然無法通過擴展坐標軸的形式,不過有個小技巧就是制造一個虛擬維度,可以用不同顏色、形狀大小、形狀類別來入手。這樣就可以顯示第四個維度了。
?
繪制 4-D 圖
?
下面我們將第四個變量——車輛油耗(city-mpg)添加到原先的三維圖中,用顏色深淺表示,這樣就繪制出了四維圖。可以看到當其他三個指標(馬力、車身重量、車價格)越高時:車輛油耗是越少的。
?
繪制 5-D 圖
?
基于這樣的思想,我們還可以通過修改圓形大小再增加一個維度——發動機尺寸(engine-size)變成五維圖:
我們仍然可以比較容易地發現:車越貴,發動機尺寸越大這樣的規律。
?
繪制 6-D 圖
?
接著還可以通過更改形狀的方式增加第六個維度——車門數,圓形表示四車門,方形表示兩車門。通常兩個車門的都是昂貴的豪華跑車,在圖中也可以看出方形主要集中在價格比較高的區域。
這樣我們就從普通的二維圖擴展到了高維圖,當然還可以繼續拓展,不過分辨起來會越來越困難。
源碼:
鏈接:https://pan.baidu.com/s/1_Ij0qA8JduUHtbSqefCjuQ?
提取碼:avl8
原文:
https://medium.com/@prasadostwal/multi-dimension-plots-in-python-from-2d-to-6d-9a2bf7b8cc74
【END】
?
四大項目,挑戰Python全棧工程師?
https://edu.csdn.net/topic/python115?utm_source=csdn_bw
?熱 文 ?推 薦?
? 5G 是否會淘汰掉 WiFi?
? 我是如何 2 個月拿到 4 份 Offer 并收入翻倍的?
? 如何一本正經地寫出別人無法維護的代碼?
我花了 10 年,從工廠妹逆襲為紐約高薪程序員
中本聰的一失之慮讓比特幣趨于中心化, 那這些問題的嚴重性, 你了解嗎?
面試官問你MyBatis中有哪些設計模式,把這篇文章發給他
?我發現一個新的軟件,用自然語言編程!非常酷!
吳恩達Drive.ai因經營困難“賣身”蘋果
?馬云曾經偶像,終于把阿里留下的1400億敗光了!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
