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

熱線電話:13121318867

登錄
首頁精彩閱讀工具 | 一文學(xué)會R的基本繪圖功能
工具 | 一文學(xué)會R的基本繪圖功能
2016-04-28
收藏
現(xiàn)如今,ggplot特別火,這是因為:它是一個特別容易上手的R制圖功能包。盡管如此,有時候我還是想用一些比ggplot更簡潔的方法。這時候,我會選擇用R里基本的繪圖功能?;究畹膱D沒有那么精致而且編程起來也有點奇怪,但是用基本繪圖功能畫圖特別快,而且適用于各種類型的數(shù)據(jù),很多專業(yè)人士都會經(jīng)常用。這樣看來,其實跟UNIX工具包比較像,比如grep, sed和 awk.

來,放松一下,我們要開始玩轉(zhuǎn)R的基本繪圖功能了!

 
數(shù)據(jù)源

我們將會用到iris數(shù)據(jù)集。這是一組可靠的經(jīng)典數(shù)據(jù)集,雖然不是這個世界上最令人激動的數(shù)據(jù),但這是R自帶的(所以你不需要下載)并且很容易理解。



另外一個數(shù)據(jù)集我們會用到的是USAccDeaths數(shù)據(jù)集,它記錄了美國從1973年到1978年(每個月)意外死亡的人數(shù)。這組數(shù)據(jù)也是R自帶的并且是一組非常有代表性的時間序列數(shù)據(jù)集。這將讓我們有機會展示一些R在處理時間序列數(shù)據(jù)方面很便利的內(nèi)置功能。



 
就用plot

好,重要的事情先做:繪圖的命令是?? 你猜對了, 就是plot。 更多的好消息是: R里幾乎所有的數(shù)據(jù)結(jié)構(gòu)都是可以畫出來的。這并不是說數(shù)據(jù)將會看起來好看或者更有意義,但是你總是可以嘗試并且找出答案。





你可以通過給col參數(shù)賦值來給你的數(shù)據(jù)點添加顏色。





 
少一些$

如果你已經(jīng)厭倦了每次都要使用$調(diào)用iris數(shù)據(jù)幀,你可以“attach(附上)”數(shù)據(jù),這意味著從這里往下所有的操作都是對所附上的數(shù)據(jù)集做的。當(dāng)你完成操作,別忘了 “detach(解除附上)”。

因此就像這個例子,假設(shè)我們想在x軸和y軸繪制特定的值,我們將用attach命令代替iris$放在我們的變量的前面。





 
時間序列

用R繪制時間序列圖特別簡單。因為R本身就有時間序列的數(shù)據(jù)類型,所以繪圖工作是輕而易舉的事。下面的例子中,我會把USAccDeaths數(shù)據(jù)集傳遞給plot函數(shù)。

你能看到我們可以用xlab 和 ylab來給x軸和y軸添加標簽。



在圖上加上數(shù)據(jù)點也特別容易,用points和lines 函數(shù)就可以實現(xiàn)





你可能注意到上圖的點標記有些奇怪,圈圈內(nèi)有個十字。其實你可以用 pch參數(shù)選擇不同的點標記。而且不同的點標記可以用來表示一個變量的不同分類(或者在R里面的“層次(level)”)





 
直方圖

在R里面我的最愛之一:直方圖!當(dāng)我從Excel換到R的時候,我已經(jīng)聽說了最讓人激動的是在R里面只需要一行代碼就能代替Excel里面的catalogs of frequency tables (頻數(shù)表)。



直方圖特別好用!首先特別簡單而且能夠快速直觀地展示出你的數(shù)據(jù)集的樣子。所以直方圖是我起初學(xué)習(xí)R的時候最先學(xué)習(xí)的東西之一,也是我最常用的。





 
密度函數(shù)圖和圖例

如果你要在同一個圖里畫出不同變量的分布圖,我建議用密度分布圖。用density函數(shù)可以畫出概率分布函數(shù)(PDF)的估計圖。密度圖用一個基本的,連續(xù)的線來展現(xiàn)你的數(shù)據(jù)。我們可以用lines 函數(shù)為每一個分布加上不同的顏色。



編譯/校對:裴迅 郭姝妤

來源:大數(shù)據(jù)文摘


數(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)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 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); }