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

熱線電話:13121318867

登錄
首頁精彩閱讀最棒的7種R語言數(shù)據(jù)可視化
最棒的7種R語言數(shù)據(jù)可視化
2017-02-18
收藏

最棒的7種R語言數(shù)據(jù)可視化

隨著數(shù)據(jù)量不斷增加,拋開可視化技術(shù)講故事是不可能的。數(shù)據(jù)可視化是一門將數(shù)字轉(zhuǎn)化為有用知識的藝術(shù)。

R語言編程提供一套建立可視化和展現(xiàn)數(shù)據(jù)的內(nèi)置函數(shù)和庫,讓你學(xué)習(xí)這門藝術(shù)。在可視化的技術(shù)實(shí)現(xiàn)之前,讓我們先看看如何選擇正確的圖表類型。

選擇正確的圖表類型

基本的展現(xiàn)類型有如下四種:

1.   比較

2.   組成

3.   分布

4.   關(guān)系


為了確定哪一種類型的圖表適合你的數(shù)據(jù),我建議你應(yīng)該回答一些問題比如,

§ 在一個(gè)圖表中你想展現(xiàn)多少個(gè)變量?

§ 每個(gè)變量中你會(huì)顯示多少個(gè)數(shù)據(jù)點(diǎn)?

§ 你將要顯示的是一段時(shí)間,一些個(gè)體還是一些組的數(shù)值?


下圖是AndrewAbela博士關(guān)于選擇正確的圖表類型的一個(gè)很好的解釋。


在你的日常生活中,大部分時(shí)間你會(huì)接觸到以下7種圖表。

1.   Scattered Plot(散點(diǎn)圖)

2.   Histogram(柱狀圖)

3.   Bar & Stack Bar Chart (條形圖和堆積條形圖)

4.   Box Plot (箱線圖)

5.   Area Chart(面積圖)

6.   Heat Map(熱點(diǎn)圖)

7.   Correlogram(相關(guān)圖)


我們將使用如下圖所示的‘大集市數(shù)據(jù)’樣例來展現(xiàn)如何使用R語言創(chuàng)建可視化。

現(xiàn)在讓我們一起看如何使用R語言運(yùn)用這些可視化。

◇◆◇◆◇

散點(diǎn)圖 Scatter Plot

什么時(shí)候使用:散點(diǎn)圖是用來觀察兩個(gè)連續(xù)變量之間的關(guān)系。


上述的集市數(shù)據(jù)集中,如果你想根據(jù)成本數(shù)據(jù)可視化商品,那么我們可以使用兩個(gè)連續(xù)變量的散點(diǎn)圖,即下圖中的Item_Visibility和 Item_MRP。

這是一個(gè)使用帶有g(shù)eom_point()的函數(shù)ggplot()的簡單散點(diǎn)圖R語言代碼。

library(ggplot2)          // ggplot2 is an R library forvisualizations train.

ggplot(train,aes(Item_Visibility, Item_MRP)) + geom_point() + scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))+ scale_y_continuous("ItemMRP", breaks = seq(0,270,by = 30))+ theme_bw()

現(xiàn)在我們可以看到第三個(gè)變量,一個(gè)提供每種數(shù)據(jù)集特征的類別變量(Item_Type)。下圖中,不同的類別通過不同顏色的item_type表示出來。

增加了category的R語言代碼:

ggplot(train,aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) +

scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))+

scale_y_continuous("Item MRP",breaks = seq(0,270,by = 30))+

theme_bw() +labs(title="Scatterplot")

如下圖書所示,我們也可以為每個(gè)Item_Type單獨(dú)創(chuàng)建散點(diǎn)圖使其之更加直觀清晰。


單個(gè)類別的散點(diǎn)圖R語言代碼:

ggplot(train,aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) +

scale_x_continuous("ItemVisibility", breaks = seq(0,0.35,0.05))+

scale_y_continuous("Item MRP",breaks = seq(0,270,by = 30))+

theme_bw() +labs(title="Scatterplot") + facet_wrap( ~ Item_Type)

這里,facet_wrap將Item_Type包裹在矩陣層中并且發(fā)揮了重要作用。

◇◆◇◆◇

柱形圖(Histogram)

什么時(shí)候使用:柱形圖用來繪制連續(xù)變量。他將數(shù)據(jù)分解到箱子中,并且展現(xiàn)這些箱子的分布頻率。我們可以不斷的改變這些箱子的大小并且觀察它對可視化的影響。


我們的集市數(shù)據(jù)中,如果我們想知道基于成本的商品計(jì)數(shù),如下圖所示,那么我們可以使用基于連續(xù)變量Item_MRP的柱形圖。

這是使用帶有g(shù)eom_histogram()的函數(shù)ggplot()的簡單柱形圖R語言代碼。

ggplot(train,aes(Item_MRP)) + geom_histogram(binwidth = 2)+

scale_x_continuous("Item MRP",breaks = seq(0,270,by = 30))+

scale_y_continuous("Count", breaks= seq(0,200,by = 20))+

labs(title = "Histogram")

◇◆◇◆◇

條形圖和堆積條形圖(Bar & Stack Bar Chart)

什么時(shí)候使用:當(dāng)你想繪制一個(gè)類別變量或者連續(xù)變量和類別變量的一個(gè)組合時(shí),建議使用條形圖


我們數(shù)據(jù)集中,如果我們想知道具體年份創(chuàng)建的商店計(jì)數(shù)時(shí),如下圖所示,那么使用變量EstablishmentYear的條形圖將是最佳選擇。

這是帶有一個(gè)連續(xù)變量的函數(shù)ggplot()的簡單條形圖R語言代碼。

ggplot(train,aes(Outlet_Establishment_Year)) + geom_bar(fill = "red")+theme_bw()+

scale_x_continuous("EstablishmentYear", breaks = seq(1985,2010)) +

scale_y_continuous("Count", breaks= seq(0,1500,150)) +

coord_flip()+ labs(title = "BarChart") + theme_gray()

◇◆◇◆◇

豎形條形圖(Vertical Bar Chart)

你可以移除參數(shù)coord_flip()將其變換成豎形條形圖。

為了了解一個(gè)條形圖中,基于商店類型(類別變量)的商品重量(連續(xù)變量),使用下述代碼:
ggplot(train,aes(Item_Type, Item_Weight)) + geom_bar(stat = "identity", fill ="darkblue") + scale_x_discrete("Outlet Type")+scale_y_continuous("Item Weight", breaks = seq(0,15000, by = 500))+theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + labs(title ="Bar Chart")

◇◆◇◆◇

堆積條形圖(Stacked Bar chart)

堆積條形圖條形圖的一種高級版本,用來可視化類別變量的一個(gè)組合。

我們的數(shù)據(jù)集中,如果我們想了解基于類別變量比如種類(OutletType)和位置 (Outlet Location Type)的商店計(jì)數(shù),堆積條形圖將會(huì)是最佳選擇。

這是使用函數(shù)ggplot()的簡單堆積條形圖R語言代碼。

ggplot(train,aes(Outlet_Location_Type, fill = Outlet_Type)) + geom_bar()+

labs(title ="Stacked Bar Chart", x = "Outlet Location Type", y ="Count of Outlets")

◇◆◇◆◇

箱線圖(Box Plot)

什么時(shí)候使用:箱線圖用來繪制類別和連續(xù)變量的一個(gè)組合。它有助于可視化數(shù)據(jù)的傳播和檢測異常值。它展示了統(tǒng)計(jì)學(xué)中五個(gè)顯著的數(shù)值-最小值,值的25%,中位數(shù),值的75%和最大值。


我們的數(shù)據(jù)集中,如果我們想要確定每個(gè)商店具體商品的銷售情況,包括最小值,最大值以及中位數(shù),箱線圖將會(huì)有幫助。此外,如下圖所示它還給出了銷售商品的商店信息。

這些黑點(diǎn)表示異常值。異常值檢測和去除是成功數(shù)據(jù)探索的重要一步。

這是使用帶有g(shù)eom_boxplot的函數(shù)ggplot()的簡單箱線圖R語言代碼。

ggplot(train,aes(Outlet_Identifier, Item_Outlet_Sales)) + geom_boxplot(fill ="red")+

scale_y_continuous("ItemOutlet Sales", breaks= seq(0,15000, by=500))+

labs(title = "BoxPlot", x = "Outlet Identifier")

◇◆◇◆◇

面積圖(Area Chart)

什么時(shí)候使用:面積圖用來顯示變量或者數(shù)據(jù)集的連續(xù)性。它和線圖非常相似,并且通常用來時(shí)間序列繪制。此外,它也被用來繪制連續(xù)變量和分析潛在趨勢。


我們的數(shù)據(jù)集中,當(dāng)我們想分析商店商品的銷售趨勢時(shí),我們可以繪制如下面積圖。它顯示了基于銷售商品的商店計(jì)數(shù)。

這是帶有g(shù)eom_area的函數(shù)ggplot()的顯示商店商品銷售連續(xù)性的簡單面積圖R語言代碼。

ggplot(train,aes(Item_Outlet_Sales)) + geom_area(stat = "bin", bins = 30, fill ="steelblue") + scale_x_continuous(breaks = seq(0,11000,1000))+labs(title = "Area Chart", x = "Item Outlet Sales", y ="Count")

◇◆◇◆◇

熱點(diǎn)圖(Heat Map)

什么時(shí)候使用:熱點(diǎn)圖使用一張二維圖像中顏色的強(qiáng)度(密度)來顯示2,3個(gè)或者更多變量之間的關(guān)系。它允許你探索軸的兩個(gè)緯度以及顏色密度表示的第三個(gè)緯度。

我們的數(shù)據(jù)集中,如果我們想知道每個(gè)商店中每個(gè)商品的成本,如下圖所示,我們可以使用數(shù)據(jù)集中的3個(gè)變量MRP,OutletIdentifier和Item Type 來繪制熱點(diǎn)圖。

黑色部分表示商品MRP接近50。亮一些的部分表示商品MRP接近250。

這是一個(gè)使用函數(shù)ggplot()的簡單熱點(diǎn)圖R語言代碼。

ggplot(train, aes(Outlet_Identifier,Item_Type))+

geom_raster(aes(fill = Item_MRP))+

labs(title ="Heat Map", x ="Outlet Identifier", y = "Item Type")+

scale_fill_continuous(name = "ItemMRP")


◇◆◇◆◇

相關(guān)圖(Correlogram)

什么時(shí)候使用:相關(guān)圖用來測試數(shù)據(jù)中可用變量之間的相關(guān)程度。矩陣中小方框可以被添加陰影或者著色來表示相關(guān)值。


顏色越深,變量間的相關(guān)值越高。正的相關(guān)值用藍(lán)色表示,負(fù)的相關(guān)值用紅色表示。顏色密度和相關(guān)值成正比關(guān)系。

我們的數(shù)據(jù)集中,讓我們通過下圖來查看商品成本,重量,可見度與商店成立年份和商店銷售之間的相關(guān)性。

我們的例子中,我們可以看到商品成本和商店銷售正相關(guān),商品重量和可見度負(fù)相關(guān)。

這是使用函數(shù)corrgram()的簡單相關(guān)圖R語言代碼。

install.packages("corrgram")

library(corrgram)


corrgram(train,order=NULL, panel=panel.shade, text.panel=panel.txt,

main="Correlogram")


現(xiàn)在我想你使用起來R語言編程中的ggplot2庫將會(huì)很容易了。


數(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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) 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){ //倒計(jì)時(shí)完成 $(".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); }