99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)可視化:6條真正可以遵循的制圖技巧
數(shù)據(jù)可視化:6條真正可以遵循的制圖技巧
2015-12-24
收藏

來源 | 鏑次元數(shù)據(jù)新聞  
譯 | 宋宇
編者按:
可視化有許多“規(guī)則”。有的是實際的規(guī)則,有的則是幫助你做出選擇的建議。如果是出于數(shù)據(jù)的要求,而且你也知道該怎么做,那么許多實際的規(guī)則也不必遵守。
但是,的確有一些規(guī)則不應該違背。這些規(guī)則通常是用于一些特定種類、幾乎只能用特定方式閱讀的圖表。當這些規(guī)則被打破,閱讀過程中,數(shù)據(jù)有可能被誤讀。這會有點棘手。
條形圖的基線必須從零開始
條形圖依賴長度來呈現(xiàn)數(shù)據(jù)。短的條塊代表較低的值,長一些的則表示較高的值。條形圖的原理就是通過比較條塊的長度來比較值的大小。
當基線被改變了,視覺效果也就扭曲了。

舉例來說,請看上圖。左邊第一幅條形圖比較了兩個值:50和100,它有一條并且它有一條以零為起點的基線。很好。代表數(shù)值100的條塊長度正好是數(shù)值50的兩倍長,為100正好也是50的兩倍大小。
但當你把基線變?yōu)橐粋€更高的、非零的值時,第一個條形的長度變短了,而另外一個條形的長度卻沒有變。此時值為100的條形不再是值為50的條形的兩倍長。以此類推,當最后左邊代表數(shù)值50的條形徹底消失了,意味著100無限地大于50了。
條形圖的基線必須從零開始。
例:這張條形圖是經(jīng)??怂剐侣劀试S使用的。

3月31日目標的值為7,066,000,比6,000,000高17.8%,然而第二個條形幾乎是第一個條形長度的三倍。
有人也許會反駁說,這張圖的重點在于兩個值的差而非這兩個值本身。即便如此,用條形圖來表示本身就是一個錯誤的選擇。使用時間序列來呈現(xiàn)月累積數(shù)也許會更好。
不要過分熱衷于餅圖
有些人認為,應該完全避免餅圖。他們也許是對的,也許又不是。有些人也許會說,使用餅圖完全是一種不可原諒的錯誤。對此,我不同意。不管怎樣,事實情況是人們?nèi)匀皇褂蔑瀳D,所以我們至少可以爭取正確地使用它們。
避免過度切割餅圖,否則最終對它的閱讀將難以為繼。
那么多少是“太多”?這是一個判斷力的問題。不過,如果已經(jīng)很難從圖中看出其中一塊扇形是另一塊兩倍大,或者好幾個較小的扇形區(qū)域看起來差不多大時,在扇形切割上面就該收手了。此時可以考慮把較小的類目歸入一個更大的:“其他”。圓環(huán)圖也是一樣。
同時也考慮一下用其他種類的圖表來表示比例。
不要太依賴于餅圖。
例:這張餅圖來自維基百科,它展示了國家的不同區(qū)域。

左邊這張餅圖中已經(jīng)切割了許多塊,但旁邊另分離出一張餅圖,顯示了左圖中看不清楚的更小國家的情況,以此來提供更多的信息。有許多方式可以展示這組數(shù)據(jù),比如樹狀圖、按照數(shù)據(jù)比例制作的圖標,或者就用普通的地圖。單薄的餅圖只適用于顯示只有幾組值的數(shù)據(jù)。
尊重部分所占整體的比例
相較于呈現(xiàn)數(shù)值,有些圖更著重于表現(xiàn)部分與整體的關(guān)系,它們表現(xiàn)的數(shù)據(jù)是部分所占整體比例。比如,堆積式條形圖,堆積區(qū)域圖,樹狀圖,馬賽克圖,圓環(huán)圖以及餅圖。在這些圖表中,每一個部分都表示一個獨立的、不重疊的比例。

關(guān)于這一條,最常見的錯誤發(fā)生在調(diào)查問題允許多選時。比如說:“你上周使用了哪一種交通工具?可以多選?!边@樣的話,在人們多選的問題上就會出現(xiàn)比例的重疊,不同選項的百分比之和大于一。為了避免這種情況,你不能直接把比例做成統(tǒng)計圖。
例:這張餅圖來自福克斯新聞下屬機構(gòu),它表現(xiàn)了三個不屬于同一個整體的百分比。

每一個值都是一個單獨的整體,因此在這一例中,用三個堆積式條塊(或普通的條塊)會更直觀地表現(xiàn)每個值的比例。
展示數(shù)據(jù)
讓讀者看到數(shù)據(jù),這是可視化的重點。如果數(shù)據(jù)的呈現(xiàn)不夠清晰,就違背了做圖表的初衷。這常常是因為一張圖里的數(shù)據(jù)太多,于是讀者的興趣就被分散了。

這是一個經(jīng)典的“繪圖過度”的問題,相關(guān)的研究有很多。但是對于基本的圖表,也有一些簡單的解決方式。
首先是可以改變符號的大小,這樣上圖中的小圓點(或者是其他的符號)就不會占據(jù)太多空間。為了讓數(shù)據(jù)直觀清晰,主要要增加空白。
調(diào)節(jié)透明度,多層次的圖案就不會被覆蓋。
通過取樣或者把對數(shù)據(jù)進行分類的方式,把總體分成幾個更小的子群。從中,你可以采取小而多的方式,這樣每張表里的信息就會少一些。
數(shù)據(jù)進行再統(tǒng)計及分門別類。
總而言之,更好地呈現(xiàn)數(shù)據(jù)。
例:這張圖展示了金州勇士隊在2008-09賽季的每個投籃。

這張圖最終形成了一個球場的形狀,并得出了對于球員們投籃最多的地點的一個小結(jié)論——近框,中距離,以及三分球。但是它們之間的差距是很小的,讀者并不能看清真正量級上的差距。
數(shù)據(jù)聚合法將有助于解決此類問題。
解釋編碼
通過一定的形狀、顏色和幾何圖形的結(jié)合,將數(shù)據(jù)呈現(xiàn)出來。為了讓讀者能讀清楚,圖表設(shè)計者就要把這些圖形解碼回數(shù)據(jù)值。經(jīng)典的例子是沒有標注的坐標軸。

有時編碼不需要解釋。比如說,讀者也許知道怎樣讀條形圖,就不必解釋條的長度表示的是值的大小了。但是設(shè)計者的確應該解釋數(shù)據(jù),也就是圖表的單位和主題。
所以標明坐標軸代表的含義。要給讀者提供線索或圖例,解釋圖表。
例:這個錯誤標注的圖表來自溫尼伯太陽報:
我們要是能知道這是統(tǒng)計關(guān)于什么的問題就好了。
大功告成
搞定了。最后一件事就是確保你沒有違反最基礎(chǔ)的可視化規(guī)則——這都是關(guān)于理解數(shù)據(jù)轉(zhuǎn)換可視化圖形的過程。如果能弄明白怎數(shù)據(jù)是如何轉(zhuǎn)換成幾何圖形的,你就可以創(chuàng)作自己的可視化作品了。但對于特定的幾種只能用特定方式來讀取的圖表,是沒有什么改變的余地的。
總之,一定要學會把數(shù)據(jù)轉(zhuǎn)換成可視化圖形。然后真正理解可視化制圖中“規(guī)則”和“建議”的不同之處。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }