編者按:Netflix數據可視化工程師、《D3.js in Action》作者Elijah Meeks介紹了nteract數據探索器的設計理念和主要功能。
我職業生涯的大部分時間花在設計和創建數據產品上——數據面板之類的分析應用,便于理解算法、數據集的數據可視化原型。相當一部分(但仍然不算多)時間花在開發一個名為Semionic的React數據可視化框架上,我的許多其他數據產品的圖形部分使用了這個框架。
如果你只對nteract數據探索器的特性感興趣,可以跳過下面幾節,直接從如何使用數據探索器開始閱讀。
基于Semiotic可視化TSNE數據集 by Susie Lu
數據可視化主要有兩個領域:應用和工具。在數據可視化的語境下,工具是指諸如D3這樣的軟件庫,或者Tableau這樣的平臺,這些可視化工具讓你可以創建數據產品,比如面板或報告。然而,數據可視化還有一個我直到最近以前都沒怎么接觸過的領域:自動數據可視化。所以當我為nteract平臺開發一個數據探索器的時候,我很興奮,想看看自己能夠給這一數據可視化的重要領域貢獻點什么。
問題空間
插入一張表格或其他結構化的數據集,然后循環不同視圖,這就是自動可視化。例如,插入一張表格,然后你可以查看它的柱形圖或餅圖,希望不同的視圖可以揭示數據中隱藏的東西。
某種意義上,所有用于探索性數據分析的數據可視化都具備自動模式。Tableau之類的商業智能(BI)工具讓你通過試驗不同的視圖設計面板和報告。ggplot2接受期望的數據結構,然后返回美觀的默認圖形,讓你可以相對簡單地循環視圖。
以上工具和nteract數據探索器的區別在于,數據探索器并不是為最終生成報告或面板而設計的。相反,它僅僅提供一組圖形,讓你可以概覽notebook中的數據。notebook用戶有各種創建數據可視化最終產品的方法,他們知道想要呈現和強調什么。數據探索器無意在這方面參與競爭。
目標
以恰當的方式總結數據。不僅可以比較單獨的行,還可以比較分組后的行,以突出分布和層級。
支持多樣性的數據視圖。例如,折線圖和柱狀圖用來描繪不同行的數值測度很不錯,但在可視化邊列表時完全用不上。類似地,如果你需要查看大量數據點,你會希望能看到兩個測度的相關性密度,而不是單個數據點的分布。
封裝組件以便其他查詢界面復用。比如,同樣的可視化組件可以用于Netflix的內部SQL查詢應用。
數據探索器使用了pandas實現的表格式數據資源表示法。這是一種簡單的數據格式,其中包括:
列名和列類型(字符串、數字)
dataframe鍵
多種測度
表格式數據結構
另外,數據探索器設計時面向的數據規模是數百數據點,而不是數千乃至更多數據點。
為何基于Semiotic
碰巧我當時正開發這個基于數據模型的結構化視圖和數據可視化方法的圖表框架。和其他圖標庫不同,Semiotic沒有
Semiotic的設計方式意味著實現多樣性的圖表相當容易。例如,
如何使用數據探索器
我們將使用世界幸福感報告作為樣本數據集。你可以在nteract親自嘗試,或者通過mybinder在線瀏覽(可能需要30秒加載notebook):
https://hub.mybinder.org/user/nteract-examples-6lbp5cij/nteract/edit/python/happiness.ipynb
在notebook中進行以下配置以便使用數據探索器:
import pandas as pd
pd.options.display.html.table_schema = True
加載數據然后查看dataframe:
df = pd.read_csv(
"https://gist.githubusercontent.com/rgbkrk/a7984a8788a73e2afb8fd4b89c8ec6de/raw/db8d1db9f878ed448c3cac3eb3c9c0dc5e80891e/2015.csv"
)
df
如上圖所示,dataframe右側出現了一些圖標,點擊這些圖標可以切換不同的數據可視化模式。
柱狀圖、總結圖、散點圖、hexbin、網絡圖、層次結構圖、平行坐標圖、折線圖
柱狀圖
第一個模式是柱狀圖。每個柱形都可以交互。不過出于清晰考慮,只有數值最高的那些柱形是彩色的。通過Metric(測度)下拉菜單可以指定不同的測度作為縱軸。
通過Categories(類別)可以聚合行。WIDTH(柱寬)也可以用來編碼第二測度,生成不等寬柱狀圖。
需要注意的是聚合只是簡單的相加,因此選中Region(區域)時,得到的是該區域的幸福度總值,也就是說,該區域內的國家越多,這一區域的幸福度越高。如果想要準確地比較不同區域的幸福度,我們應該使用總結圖。
總結圖
柱狀圖下面的圖標對應總結圖。默認使用提琴形圖,鼠標懸浮數據點,可以查看數據點的具體數值。
除了Metric(測度)和CATEGORY(類別)外,還可以改變TYPE(可視化類型):joy plot、箱形圖、熱力圖、直方圖。
左:joy plot;右:箱形圖
散點圖
第三個模式是散點圖,其中提供了尺寸編碼的選項(如果你覺得需要創建氣泡圖的話)。另外,鼠標懸浮同樣可以查看單個數據點的數值。散點圖還為排名靠前的數據點提供了初步的注釋。
hexbin
散點圖下面是hexbin圖標。hexbin有助于探索較大數據集的密度。鼠標懸浮可以查看聚合的數據點。
網絡圖
nteract數據探索器支持兩種網絡圖:桑基圖(顯示流向)和力導向網絡(傳統的類SNA方法)。很不幸,在非網絡樣本數據上,這兩種圖的效果都很糟糕。
層次結構圖
接下來是層次結構圖,供你探索層次結構模式。使用Categories(類別)按鈕可以選擇如何嵌套數據。在treemap(矩形樹圖)或partition(分區圖)模式下,選中的Metric(測度)將用來指定可視化中的尺寸。
平行坐標圖
平行坐標圖讓你可以交互式地分析數據,通過每列上的筆刷過濾數據。點擊Explore/Filter(探索/過濾)按鈕可以在探索和過濾模式間切換。在過濾模式下,可以通過調節筆刷的起止(縮放尺寸和移動位置)過濾數據。在探索模式下,懸浮鼠標可以查看單獨的數據點。
折線圖
通過折線圖模式可以查看測度的組合,以及它們在百分比、聚合形式下的樣貌。未來我將升級這一模式,當數據包含時序信息或者序列信息時,應用相應的可視化。
后續改進
數據模型方面的改進
圖表技術的靈活性僅僅是自動數據可視化的諸多制約因素之一。目前數據探索器提供了數據的許多可能視圖,但絲毫沒有提示你應該使用哪一種。使用魯棒性更好的數據模型可以改善這一點:
基數:提供基數信息有助于確定字符串是名稱之類的東西(高基數)還是類別(低基數)。
預處理:自動數據可視化處理的是表格式數據,但使用這一格式表示特定類型的數據卻是一項挑戰。更好地存儲時序數據、數據的總結性草圖、拓撲數據有助于魯棒性更好的可視化數據方法及探索數據方法。
特征:散點圖視圖中的簡單注釋是Semiotic的主要特性。然而,自動生成注釋很困難。探索數據特征的啟發式算法,例如異常檢測或其他方法,可以在數據可視化中添加豐富的注釋。
數據探索器方面的改進
這是我首次嘗試創建某種自動數據探索工具,我確信有可以改進的地方。所以我歡迎所有使用nteract的人提交bug報告或要求開發新特性。我個人覺得以下三個方面值得改進:
UI改進:開發數據探索器的需求之一是使用原生HTML控件。直到我嘗試只使用原生元素實現美觀周全的UI時,我才意識到我有多依賴那些定制的UI元素。除了美觀程度上的提升外,很多控件可以設計得更好,比如按鈕可以提供更多內置的指示。特別是不同視圖之間的導航應該有更好的信息層次,提示用戶不同的圖表方法的相關程度。
多張小圖:探索數據最有用的可視化技術是并列多張小圖——基于相同數據和/或相同尺度的多張圖表,以供比較不同維度。
保存狀態:我之前已經提到過,數據探索器不打算和傳統的notebook數據可視化競爭。數據的視圖可以保存到單元,避免刷新后丟失,這個功能還是有用的。
結語
就我的經驗而言,當前的自動數據可視化產品往往堆砌特性,缺乏統一的主題。我希望數據探索器能做到的一點是,不僅提供用戶大量的圖表,而且能夠讓數據可視化和數據探索更好地配合。
-
可視化
+關注
關注
1文章
1249瀏覽量
21671 -
數據集
+關注
關注
4文章
1223瀏覽量
25305
原文標題:跨語言notebook自動數據可視化:nteract數據探索器
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
變壓器的主要功能
傳感器的主要功能是什么

評論