
最棒的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)圖使其之更加直觀清晰。
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
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03