最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)平行坐標(biāo)圖的繪制(plotly)方式

 更新時(shí)間:2019年11月22日 09:13:35   作者:Backcanhave7  
今天小編就為大家分享一篇Python實(shí)現(xiàn)平行坐標(biāo)圖的繪制(plotly)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

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

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

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

利用pandas實(shí)現(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)圖如下所示:

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

利用plotly實(shí)現(xiàn)平行坐標(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")
})

繪制圖形如下所示:

繪制鳶尾花數(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')
})

繪制的圖形如下所示:

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

以上這篇Python實(shí)現(xiàn)平行坐標(biāo)圖的繪制(plotly)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python在圖片中插入大量文字并且自動(dòng)換行

    Python在圖片中插入大量文字并且自動(dòng)換行

    今天小編就為大家分享一篇關(guān)于Python在圖片中插入大量文字并且自動(dòng)換行,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • python實(shí)現(xiàn)自冪數(shù)的示例代碼

    python實(shí)現(xiàn)自冪數(shù)的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)自冪數(shù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Django 序列化的具體使用

    Django 序列化的具體使用

    django rest framework 中的序列化組件,本文主要介紹了Django 序列化的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 報(bào)錯(cuò)No?module?named?numpy問題的解決辦法

    報(bào)錯(cuò)No?module?named?numpy問題的解決辦法

    之前安裝了Python,后來(lái)因?yàn)榫毩?xí)使用Python寫科學(xué)計(jì)算的東西,又安裝了Anaconda,但是安裝Anaconda之后又出現(xiàn)了一個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于報(bào)錯(cuò)No?module?named?numpy問題的解決辦法,需要的朋友可以參考下
    2022-08-08
  • python項(xiàng)目導(dǎo)入open3d后報(bào)錯(cuò)ImportError:DLL load failed:找不到指定的模塊問題

    python項(xiàng)目導(dǎo)入open3d后報(bào)錯(cuò)ImportError:DLL load failed:找不到

    這篇文章主要介紹了python項(xiàng)目導(dǎo)入open3d后報(bào)錯(cuò)ImportError:DLL load failed:找不到指定的模塊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Python使用xlrd和xlwt實(shí)現(xiàn)自動(dòng)化操作Excel

    Python使用xlrd和xlwt實(shí)現(xiàn)自動(dòng)化操作Excel

    這篇文章主要介紹了Python使用xlrd和xlwt實(shí)現(xiàn)自動(dòng)化操作Excel,xlwt只能對(duì)Excel進(jìn)行寫操作。xlwt和xlrd不光名字像,連很多函數(shù)和操作格式也是完全相
    2022-08-08
  • python 字典 setdefault()和get()方法比較詳解

    python 字典 setdefault()和get()方法比較詳解

    這篇文章主要介紹了python 字典 setdefault()和get()方法比較詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    模擬鍵盤操作執(zhí)行自動(dòng)化任務(wù),我們常用的有pyautowin等自動(dòng)化操作模塊。今天介紹的這個(gè)模塊叫做keyboard,它是純Python原生開發(fā),編譯時(shí)完全不需要依賴C語(yǔ)言模塊。一行命令就能完成安裝,非常方便,需要的可以了解一下
    2022-10-10
  • Python抓取電影天堂電影信息的代碼

    Python抓取電影天堂電影信息的代碼

    最近想做一個(gè)電影資訊的App,由于豆瓣不對(duì)外開發(fā)API了,正愁怎么錄入數(shù)據(jù)呢。最近在學(xué) Python 想想那就用它來(lái)抓取電影信息吧
    2016-04-04
  • 詳解Python中Pygame鍵盤事件

    詳解Python中Pygame鍵盤事件

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Pygame鍵盤事件展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

天气| 博罗县| 中超| 西青区| 长寿区| 冕宁县| 琼海市| 共和县| 方山县| 德令哈市| 寿宁县| 福安市| 新密市| 巴南区| 兴业县| 芒康县| 崇义县| 四川省| 三明市| 岫岩| 拜泉县| 云龙县| 上高县| 环江| 临漳县| 双牌县| 故城县| 兴宁市| 阳高县| 吉水县| 北碚区| 二手房| 余干县| 荔波县| 淮安市| 恩平市| 柞水县| 田东县| 平乡县| 湖州市| 上犹县|