真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python如何實現(xiàn)平行坐標(biāo)圖-創(chuàng)新互聯(lián)

這篇文章主要介紹了Python如何實現(xiàn)平行坐標(biāo)圖,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司提供高防服務(wù)器、云服務(wù)器、香港服務(wù)器、成都服務(wù)器托管

平行坐標(biāo)圖簡介

當(dāng)數(shù)據(jù)的維度超過三維時,此時數(shù)據(jù)的可視化就變得不再那么簡單。為解決高維數(shù)據(jù)的可視化問題,我們可以使用平行坐標(biāo)圖。以下關(guān)于平行坐標(biāo)圖的解釋引自百度百科:為了克服傳統(tǒng)的笛卡爾直角坐標(biāo)系容易耗盡空間、 難以表達(dá)三維以上數(shù)據(jù)的問題, 平行坐標(biāo)圖將高維數(shù)據(jù)的各個變量用一系列相互平行的坐標(biāo)軸表示, 變量值對應(yīng)軸上位置。為了反映變化趨勢和各個變量間相互關(guān)系,往往將描述不同變量的各點連接成折線。所以平行坐標(biāo)圖的實質(zhì)是將m維歐式空間的一個點Xi(xi1,xi2,...,xim) 映射到二維平面上的一條曲線。在N條平行的線的背景下,(一般這N條線都豎直且等距),一個在高維空間的點可以被表示為一條拐點在N條平行坐標(biāo)軸的折線,在第K個坐標(biāo)軸上的位置就表示這個點在第K個維的值。

繪制平行坐標(biāo)圖

本文主要介紹兩種利用Python繪制平行坐標(biāo)圖的方法,分別是利用pandas包繪制和利用plotly包繪制(默認(rèn)已安裝pandas包和plotly包)。

利用pandas實現(xiàn)平行坐標(biāo)圖的繪制

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from pandas.plotting import parallel_coordinates
 
data = sns.load_dataset('iris')
 
fig,axes = plt.subplots()
parallel_coordinates(data,'species',ax=axes)
fig.savefig('parallel.png')

繪制的平行坐標(biāo)圖如下所示:

Python如何實現(xiàn)平行坐標(biāo)圖

從上圖可以看到x軸上變量共用一個y坐標(biāo)軸,此時因sepal_length、sepal_width、petal_length以及petal_width這四個變量的值得范圍相近,利用這種方式作出的共用y軸的平行坐標(biāo)圖有著很好的可視化效果;但假如sepal_length、sepal_width、petal_length以及petal_width這些變量的值的范圍相差較大時,這種共用y軸的平行坐標(biāo)圖就不再適用,此時我們需要的是y軸獨立的平行坐標(biāo)圖。下面介紹的另一種方法實現(xiàn)的就是y軸獨立的平行坐標(biāo)圖。

plotly繪圖有兩種模式,一種是online模式,另一種是offline模式。本文使用的是offline模式,且是在jupyter notebook中進(jìn)行繪圖。

首先熟悉一下plotly的繪圖方式:

import plotly as py
import plotly.graph_objs as go
py.offline.init_notebook_mode(connected=True) # 初始化設(shè)置
 
py.offline.iplot({
 "data": [go.Parcoords(
  line = dict(color = 'blue'),
  dimensions = list([
   dict(range = [1,5],
     constraintrange = [1,2],
     label = 'A', values = [1,4]),
   dict(range = [1.5,5],
     tickvals = [1.5,3,4.5],
     label = 'B', values = [3,1.5]),
   dict(range = [1,5],
     tickvals = [1,2,4,5],
     label = 'C', values = [2,4],
     ticktext = ['text 1', 'text 2', 'text 3', 'text 4']),
   dict(range = [1,5],
     label = 'D', values = [4,2])
  ])
 )],
 "layout": go.Layout(title="My first parallel coordinates")
})

繪制圖形如下所示:

Python如何實現(xiàn)平行坐標(biāo)圖

繪制鳶尾花數(shù)據(jù)的平行坐標(biāo)圖:

df = sns.load_dataset('iris')
df['species_id'] = df['species'].map({'setosa':1,'versicolor':2,'virginica':3}) #用于顏色映射
 
py.offline.iplot({
 "data": [go.Parcoords(
  line = dict(color = df['species_id'],
     colorscale = [[0,'#D7C16B'],[0.5,'#23D8C3'],[1,'#F3F10F']]),
  dimensions = list([
   dict(range = [2,8],
    constraintrange = [4,8],
    label = 'Sepal Length', values = df['sepal_length']),
   dict(range = [1,6],
    label = 'Sepal Width', values = df['sepal_width']),
   dict(range = [0,8],
    label = 'Petal Length', values = df['petal_length']),
   dict(range = [0,4],
    label = 'Petal Width', values = df['petal_width'])
  ])
 )],
 "layout": go.Layout(title='Iris parallel coordinates plot')
})

繪制的圖形如下所示:

Python如何實現(xiàn)平行坐標(biāo)圖

注:關(guān)于plotly.offline.iplot、go.Parcoords以及go.Layout的用法可以利用help關(guān)鍵字查看相關(guān)幫助文檔,與pyecharts不同,plotly提供的幫助文檔非常詳細(xì)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python如何實現(xiàn)平行坐標(biāo)圖”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:Python如何實現(xiàn)平行坐標(biāo)圖-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/dpesei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部