您好,登錄后才能下訂單哦!
怎么用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 兩個特征即可:
代碼實現如下:
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 圖片。
下面增加特征來繪制三維圖。
可以使用 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"))
如何繪制更高維度的圖呢?顯然無法通過擴展坐標軸的形式,不過有個小技巧就是制造一個虛擬維度,可以用不同顏色、形狀大小、形狀類別來入手。這樣就可以顯示第四個維度了。
下面我們將第四個變量——車輛油耗(city-mpg)添加到原先的三維圖中,用顏色深淺表示,這樣就繪制出了四維圖。可以看到當其他三個指標(馬力、車身重量、車價格)越高時:車輛油耗是越少的。
基于這樣的思想,我們還可以通過修改圓形大小再增加一個維度——發動機尺寸(engine-size)變成五維圖:
我們仍然可以比較容易地地發現:車越貴,發動機尺寸越大這樣的規律。
接著還可以通過更改形狀的方式增加第六個維度——車門數,圓形表示四車門,方形表示兩車門。通常兩個車門的都是昂貴的豪華跑車,在圖中也可以看出方形主要集中在價格比較高的區域。Python學習q-u-n七八四,七五八,二一四教程視頻,工具,各類實戰操作分享
這樣我們就從普通的二維圖擴展到了高維圖,當然還可以繼續拓展,不過分辨起來會越來越困難。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。