用數據說話,R語言有哪七種可視化應用?

2020-12-11 雷鋒網


今天,隨著數據量的不斷增加,數據可視化成為將數字變成可用的信息的一個重要方式。R語言提供了一系列的已有函數和可調用的庫,通過建立可視化的方式進行數據的呈現。在使用技術的方式實現可視化之前,我們可以先和雷鋒網一起看看如何選擇正確的圖表類型。 

作者 Dikesh Jariwala是一個軟體工程師,並且在Tatvic平臺上編寫了一些很酷很有趣的程序。他用API編寫了第一版Price Discovery,雷鋒網(公眾號:雷鋒網)對他所寫的這篇文章做了編譯,未經許可不得轉載。

如何選擇正確的圖表類型

四種可選擇的基本類型:

1、  比較類圖表

2、  組成類圖表

3、  分布類圖表

4、  關係類圖表

為了選擇最適合分析手中數據的圖表類型,首先考慮以下幾個問題:

針對如何選擇最適宜的圖表,Dr.Andrew Abela 提供了一個很好的方法示意圖:

在使用圖表分析的時候,常用的有7種圖表:

1.  散點圖

2.  直方圖

3.  柱狀圖和條形圖

4.  箱線圖

5.  面積圖

6.  熱點圖

7.  相關圖

我們使用「Big Mart data」作為案例來理解 R 可視化的實現方法,你可以點擊此處下載完整的數據(google doc)。

雷鋒網將在以下篇幅介紹如何利用 R 實現可視化:

1、  散點圖

使用場景:散點圖通常用於分析兩個連續變量之間的關係。

在上面介紹的超市數據中,如果我們想根據他們的成本數據來可視化商品的知名度,我們可以用散點圖,兩個連續的變量這裡我們命名為Item_Visibility和Item_MRP。

這裡使用R中的ggplot()和geom_point()函數。

library(ggplot2)          // ggplot2 是R中的一個函數庫

ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point() + scale_x_continuous("Item

Visibility", breaks = seq(0,0.35,0.05))+ scale_y_continuous("Item MRP", breaks = seq(0,270,by =

30))+ theme_bw()

下圖中增加了一個新的變量,對產品進行分類的變量,命名為Item_Type,圖中以不同的顏色作為顯示。

R代碼中增加了分組:

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

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

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

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

可以進一步可視化,將散點圖以不同的小圖表的形式呈現,下圖中,每一個小圖表都代表一種不同的產品:

代碼如下:

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

  scale_x_continuous("Item Visibility", 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_warp將圖像顯示在長方形圖表中。

2、  直方圖

使用場景:直方圖用於連續變量的可視化分析。將數據劃分,並用概率的形式呈現數據的規律。我們可以將分類根據需求進行組合和拆分,從而通過這種方式看到數據的變化。

繼續使用上面我們引入的超市數據的例子,如果我們需要知道不同成本段的商品的數量,我們可以將所有數據畫出一個直方圖,Item_MRP作為橫坐標。如下圖所示:

下面是一個簡單的畫直方圖的例子,使用的是R中的ggplot()和geom_histogram()函數。

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")

3、  柱狀圖和條形圖

使用場景:柱狀圖一般用於表現分類的變量或者是連續的分類變量的組合。

在超市數據的例子中,如果我們需要知道在每一年新開的超市的門店數量,那麼柱狀圖就是一個很好的圖形分析的方式。用「年」的信息作為坐標,如下圖所示:

下面是一個簡單的畫柱狀圖的例子,使用的是R中的ggplot()函數。

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

 scale_x_continuous("Establishment Year", breaks = seq(1985,2010)) +

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

 coord_flip()+ labs(title = "Bar Chart") + theme_gray()

水平柱狀圖

去除代碼中的coord_flIP()變量,可以將直方圖以水平直方圖的方法呈現。

為了得到商品重量(連續變量)和折扣店(分類變量)的關係,可使用下面的代碼:

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")

堆疊條形圖

堆疊條形圖是柱狀圖的一個高級版本,可以將分類變量組合進行分析。

超市數據的例子中,如果我們想要知道不同分類商品的折扣店數量,包含折扣店種類和折扣店區域,堆疊條形圖就是做這種分析最為有效的圖表分析方法。

下面是一個簡單的畫堆疊條形圖的例子,使用的是R中的ggplot()函數。

ggplot(train, aes(Outlet_Location_Type, fill = Outlet_Type)) + geom_bar()+
labs(title = "Stacked Bar Chart", x = "Outlet Location Type", y = "Count of Outlets")

4、  箱線圖

使用場景:箱線圖一般用於相對複雜的場景,通常是組合分類的連續變量。這種圖表應用於對數據延伸的可視化分析和檢測離值群。主要包含數據的5個重要節點,最小值,25%,50%,75%和最大值。

在我們的案例中,如果我們想要找出每個折扣店每個商品銷售的價格的情況,包括最低價,最高價和中間價,箱線圖就大有用處。除此之外,箱線圖還可以提供非正常價格商品銷售的情況,如下圖所示。

圖中,黑色的點為離值群。離值群的檢測和剔除是數據挖掘中很重要的環節。

下面是一個簡單的畫箱線圖的例子,使用的是R中的ggplot()和geom_boxplot函數。

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

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

labs(title = "Box Plot", x = "Outlet Identifier")

5、  面積圖

使用場景:面積圖通常用於顯示變量和數據的連續性。和線性圖很相近,是常用的時序分析方法。另外,它也被用來繪製連續變量和分析的基本趨勢。

超市案例中,當我們需要知道隨著時間的眼神,折扣店商品的品種走勢,我們可以畫出如下的面積圖,圖中呈現了折扣店商品的成交量的變化。

下面是一個簡單的畫面積圖的例子,用於分析折扣店商品成交數量的走勢,使用的是R中的ggplot()和geom_area函數。

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")

6、  熱點圖

使用場景:熱點圖用顏色的強度(密度)來顯示二維圖像中的兩個或多個變量之間的關係。可對圖表中三個部分的進行信息挖掘,兩個坐標和圖像顏色深度。

超市案例中,如果我們需要知道每個商品在每個折扣店的成本,如下圖中所示,我們可以用三個變量Item_MRP,Outlet_Identifier和Item_type進行分析。

暗的數據表示Item_MRP低於50,亮的數據表示Item_MRP接近250。 

下面是R代碼,使用了ggplot()函數做簡單的熱點圖。

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 = "Item MRP")

7、  關係圖

使用場景:關係圖用作表示連續變量之間的關聯性。每個單元可以標註成陰影或顏色來表明關聯的程度。顏色越深,代表關聯程度越高。正相關用藍色表示,負相關用紅色表示。顏色的深度隨著關聯程度的遞增而遞增。

超市案例中,用下圖可以展現成本,重量,知名度與折扣店開業的年份和銷售價格之間的關係。可以發現,成本和售價成正相關,而商品的重量和知名度成負相關。

下面是用作簡單關係圖的R代碼,使用的是corrgram()函數。

install.packages("corrgram")

library(corrgram)

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

          main="Correlogram")

通過以上的分類介紹和R程序的簡單介紹,相信你可以使用R中的ggplot庫進行自己的數據可視化分析了。 除了可視化分析,你還可以通過我們的網絡課程進一步的學習使用R進行的數據挖掘,歡迎訪問我們的網頁「Google Analytics Data Mining with R」。

Via Tatvic

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • R語言天氣可視化應用
    雖然是個很小的應用,但五臟俱全,我們也需要完整的思考,如何才能實現這個應用呢!2. 系統架構設計從上面的功能描述中,單獨使用一種語言也可以實現的。 如果單獨用PHP開發,做一個Web網站非常容易,連接新浪微博也有現成的SDK可以調用,爬取數據及存儲也不麻煩,那麼如何實現地圖和天氣數據的可視化,似乎就是卡在這裡了。
  • R語言學習筆記之相關性矩陣分析及其可視化
    計算相關矩陣R內置函數 cor() 可以用來計算相關係數:cor(x, method = c("pearson", "kendall", "spearman")),如果數據有缺失值,用cor(x, method = "pearson", use = "complete.obs")。
  • Day7:R語言課程 (R語言進行數據可視化)
    使用「map」函數進行數據結構迭代。導出在R環境之外使用的圖片。1.設置數據框以進行可視化在本課中需要製作與每個樣本中的平均表達量相關的多個圖,還需要使用所有可用的metadata來適當地注釋圖表。觀察rpkm數據。每列代表實驗中的樣品,每個樣品具有~38K值,對應著不同轉錄本的表達。
  • 數據可視化之R語言
    R中有四大框架用於產生圖形,基本圖形,網格,格子和ggplot2.分類數據的可視化使用條形圖、點圖、柱形圖、脊柱圖、馬賽克圖、餅圖及四折圖連續數據的可視化使用箱線圖、直方圖、散點圖及其變種、帕累託圖==============================================一、分類數據的可視化
  • RStudio|用R Markdown生成你的R語言數據分析報告
    1,get started很早就對R語言可以製作高質量的報告有所耳聞,但也沒有很強的意願去研究一番。究其緣由在於寫公眾號時無法不會優雅的插入代碼塊,便有意去看看R Markdown 的效果如何。 install.packages("rmarkdown")首先在Rstudio中創建一個txt文檔並將其另存為.Rmd格式:創建完 .Rmd格式文檔後,我們就可以著手寫一份基於 R Markdown 的報告啦。
  • 【語言班】R語言數據分析與可視化高級研修班(4.26-29)
    R語言是用於數據分析、數據可視化的高級程式語言,其功能包括:數據存儲和處理、科學計算工具;能夠進行幾乎所有的統計分析;內置豐富便捷的數據可視化功能
  • R語言與Tableau集成之可視化應用
    作者 | CDA數據分析師Tableau是一款非常棒的數據可視化商業軟體,通過拖拉拽的方式迅速地實現數據可視化。而且該軟體可以連接任何一種資料庫,在處理大型數據時一點都不遜色。缺點是其無法從事數據分析和挖掘工作,幸運的是,從Tableau的8.0開始,Tableau與R語言打通,可以在Tableau中運行R腳本,從而將R語言的分析或挖掘結果在Tableau中展示。如何實現Tableau和R語言的聯手繪製可視化圖表呢?
  • 深度| R vs Python:R是現在最好的數據科學語言嗎?
    學習如何在 R 中進行數據可視化當你在學習數據可視化的時候,儘管你會有相對更多的程式語言可以選擇,但筆者還是認為,大多數最優的編程資源都使用了 R 語言。這本書包含了對數據可視化非常棒的介紹,還有對很多 R 語言數據可視化工具庫的介紹,是一本學習 R 語言的必備書籍。使用 R 語言來學習機器學習最後,如果你想開始學習機器學習,有很多優秀的使用 R 語言描述的機器學習的書籍可以參考。
  • 推薦|R語言相關電子書,美輪美奐的數據可視化,再也不怕被嫌棄了
    工作之餘翻開看看,近距離帶你感受R的魅力,數據可視化,畫出各種高質量的圖,你也可以,再也不怕被導師和審稿人嫌棄遼那這數據可視化,可視化,這究竟在說啥?數據可視化是關於數據視覺表現形式的研究;其中,這種數據的視覺表現形式被定義為一種以某種概要形式抽提出來的信息,包括相應信息單位的各種屬性和變量。
  • r語言有什麼優劣勢及R語言的未來發展趨勢_R語言在現實中的應用
    我兩臺本本一臺Windows,一臺Linux,都用得很順手。相比之下,你有見過人在Mac上用SAS嗎。。。 這人是要多麼的想不開。。。 =。 = 6. 因為用的人越來越多,又是開源,有很多配套的「插件」為其錦上添花。
  • 零基礎學習R語言數據分析
    下面介紹一下我覺得比價有用的學習資料。學習任何語言的捷徑就是Learn by dirty。這裡推薦一個網站,code school的Try R 課程,非常基礎,從最基本的語句的賦值到最後的數據框的基本操作,手把手一步一步的教你,然後對你輸入的語句,網頁會給出判斷,如果寫錯了,還有很詳細的解釋。網頁全部是英文的,英語過了四級的童鞋應該可以應付了。
  • 零基礎入門R語言數據分析指南
    下面介紹一下我覺得比價有用的學習資料。學習任何語言的捷徑就是Learn by dirty。這裡推薦一個網站,code school的Try R 課程,非常基礎,從最基本的語句的賦值到最後的數據框的基本操作,手把手一步一步的教你,然後對你輸入的語句,網頁會給出判斷,如果寫錯了,還有很詳細的解釋。網頁全部是英文的,英語過了四級的童鞋應該可以應付了。
  • R語言數據可視化ggplot2包
    ggplot2是R語言最為強大的作圖軟體包,有著自成一派的可視化理念,數據可視化是數據分析的重要一步,讓我們通過由淺入深的掌握數據可視化的精髓。
  • 15種獨一無二的創新數據可視化方式
    本文總結了15種驚豔的可視化方式,涵蓋了各種各樣的主題。可以應用於選擇的任何工具中,但本文將以Python、R、Tableau和D3.js為例。 1. 用R進行數據可視化在選擇數據可視化工具時,R語言是創建ggplot2庫不二之選。只需幾行代碼就能實現有個性的可視化、獲取實時反饋、揭示數據模式。
  • 免費公開課|1小時教你用R 語言完成漂亮的數據可視化
    在國內,大數據作為一個新型的熱門行業,市場上掌握大數據知識技術的人才非常少,企業對大數據開發人才非常緊缺也形成了招聘競爭,不惜開出高額薪水吸引大數據人才。大數據像是『黑盒子』一樣的新世界,現在我們用數據挖掘來探索這個世界的規則和信息,但是沒有問題導向的數據挖掘需要花費大量的時間來探索。與文字相比,圖片能高效直接地幫助我們快速識別信息。
  • R語言數據清洗實戰——高效list解析方案
    杜雨:EasyCharts團隊成員,R語言中文社區專欄作者。興趣方向為:Excel商務圖表,R語言數據可視化,地理信息數據可視化。個人公眾號:數據小魔方(微信ID:datamofang) ,「數據小魔方」創始人。
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    本文由阿童木根據實踐經驗而整理,希望對大家有幫助。原創微文,歡迎轉發轉載。舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • 獨家 | 手把手教你學習R語言(附資源連結)
    本文為帶大家了解R語言以及分段式的步驟教程!人們學習R語言時普遍存在缺乏系統學習方法的問題。學習者不知道從哪開始,如何進行,選擇什麼學習資源。雖然網絡上有許多不錯的免費學習資源,然而它們多過了頭,反而會讓人挑花了眼。為了構建R語言學習方法,我們在Vidhya和DataCamp中選一組綜合資源,幫您從頭學習R語言。
  • 中了數據可視化的毒:BBC如何使用R語言繪製數據圖表?
    選自Medium作者:BBC Visual and Data Journalism參與:panda生動的圖表能極大地幫助呈現更有信息量的新聞。BBC(英國廣播公司)近日分享了他們的視覺與數據新聞團隊使用 R 語言繪製新聞圖表的經驗。
  • 超級乾貨 :手把手教你學習R語言(附資源連結)
    本文為帶大家了解R語言以及分段式的步驟教程!人們學習R語言時普遍存在缺乏系統學習方法的問題。學習者不知道從哪開始,如何進行,選擇什麼學習資源。雖然網絡上有許多不錯的免費學習資源,然而它們多過了頭,反而會讓人挑花了眼。為了構建R語言學習方法,我們在Vidhya和DataCamp中選一組綜合資源,幫您從頭學習R語言。