1、2、3維圖見過,用Python畫出來的六維圖見過麼?
我們的大腦通常最多能感知三維空間,超過三維就很難想象了。儘管是三維,理解起來也很費勁,所以大多數情況下都使用二維平面。
來自維基百科
不過,我們仍然可以繪製出多維空間,今天就來用 Python 的 plotly 庫繪製下三維到六維的圖,看看長什麼樣。Python學習q-u-n七八四,七五八,二一四教程視訊,工具,各類實戰操作分享
資料我們使用一份來自 UCI 的真實汽車資料集,該資料集包括 205 個樣本和 26 個特徵,從中選擇 6 個特徵來繪製圖形:
基礎工作
安裝好 plotly 包:
pip install plotly
載入資料集(文末會提供):
import pandas as pd data = pd.read_csv("cars.csv")
下面我們先繪製基礎的二維圖表,使用兩個 RPM 和 Speed 兩個特徵即可:
繪製 2-D 圖
程式碼實現如下:
import plotly import plotly.graph_objs as go #繪製散點圖 fig1 = go.Scatter(x=data['curb-weight'], y=data['price'], mode='markers') #繪製佈局 mylayout = go.Layout(xaxis=dict(title="curb-weight"), yaxis=dict( title="price")) #繪圖 html plotly.offline.plot({"data": [fig1], "layout": mylayout}, auto_open=True)
儲存為 html 檔案開啟可以生成互動介面,也可以儲存為 png 圖片。
下面增加特徵來繪製三維圖。
繪製 3-D 圖
可以使用 plotly 的 plot.Scatter3D 方法繪製三維圖:
程式碼實現如下:
fig1 = go.Scatter3d(x=data['curb-weight'], y=data['horsepower'], z=data['price'], marker=dict(opacity=0.9, reversescale=True, colorscale='Blues', size=5), line=dict (width=0.02), mode='markers') mylayout = go.Layout(scene=dict(xaxis=dict( title="curb-weight"), yaxis=dict( title="horsepower"), zaxis=dict(title="price")),) plotly.offline.plot({"data": [fig1], "layout": mylayout}, auto_open=True, filename=("3DPlot.html"))
如何繪製更高維度的圖呢?顯然無法通過擴充套件座標軸的形式,不過有個小技巧就是製造一個虛擬維度,可以用不同顏色、形狀大小、形狀類別來入手。這樣就可以顯示第四個維度了。
繪製 4-D 圖
下面我們將第四個變數——車輛油耗(city-mpg)新增到原先的三維圖中,用顏色深淺表示,這樣就繪製出了四維圖。可以看到當其他三個指標(馬力、車身重量、車價格)越高時:車輛油耗是越少的。
繪製 5-D 圖
基於這樣的思想,我們還可以通過修改圓形大小再增加一個維度——發動機尺寸(engine-size)變成五維圖:
我們仍然可以比較容易地地發現:車越貴,發動機尺寸越大這樣的規律。
繪製 6-D 圖
接著還可以通過更改形狀的方式增加第六個維度——車門數,圓形表示四車門,方形表示兩車門。通常兩個車門的都是昂貴的豪華跑車,在圖中也可以看出方形主要集中在價格比較高的區域。Python學習q-u-n七八四,七五八,二一四教程視訊,工具,各類實戰操作分享
這樣我們就從普通的二維圖擴充套件到了高維圖,當然還可以繼續擴充,不過分辨起來會越來越困難。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2650993/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 思維導圖是什麼軟體畫的
- 思維導圖軟體哪個好,英語思維導圖怎麼畫
- IT運維淺見運維
- 思維導圖 第六組圖形的認識
- 第六組思維導圖——圖形的認識
- 園區地圖路線規劃圖怎麼做的?廠區三維圖怎麼畫好看?地圖
- 你見過Python的GIL嗎Python
- 不可見索引在表DML操作過程中依然被維護索引
- 漫談Python魔術方法,見過的沒見過的都在這裡了Python
- .NET WEB API關鍵過程 思維導圖WebAPI
- CSS 基於文字的圖片馬賽克你見過嗎CSS
- 生成帶二維碼圖片並通過微信分享
- offer通過--3二維陣列中查詢-2陣列
- Python(模組)思維導圖Python
- 你不曾見過的酷炫地圖視覺化作品(一)地圖視覺化
- 我從未見過如此“魔幻”的E3釋出會
- 思維導圖在哪個軟體上畫
- 【INDEX】注意:不可見索引在表DML操作過程中依然被維護Index索引
- 3A Cloud 思維導圖 for Mac(思維導圖軟體)中文版CloudMac
- 什麼是統計分析?思維導圖來解答!
- 怎麼用matplotlib畫出漂亮的分析圖表
- 圖解O2O,看得見的大市場——資訊圖圖解
- 這可能是你見過最好的工程師繪圖指北工程師繪圖
- AI在用| 原來,Kimi 還能直出思維導圖AI
- python學習_思維導圖Python
- 思維導圖的方法和應用
- 通過java畫文字格式的統計圖Java
- 思維導圖教程是什麼?該怎樣繪製思維導圖?
- Python中常見運算子過載方法Python
- 通過vue元件化方式實現常見動態圖示Vue元件化
- Flutter沒有展示思維腦圖的控制元件?用CustomPainter自己畫!Flutter控制元件AI
- win10 我的電腦圖示不見怎麼辦_win10我的電腦圖示怎麼調出來Win10
- 再見,圖靈圖靈
- 不可見索引(invisible index)在表DML操作過程中依然被維護索引Index
- js通訊錄效果,你見過麼JS
- 工程師們看過來|這是我見過的IT圈最“潮”的產品釋出會了!工程師
- 5個常見運維場景,居然用 Python 輕鬆解決了運維Python
- 三維展示圖怎麼做,視覺化地圖設計用什麼軟體?視覺化地圖