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

2020-11-21 雷鋒網

今天,隨著數據量的不斷增加,數據可視化成為將數字變成可用的信息的一個重要方式。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語言
    R中有四大框架用於產生圖形,基本圖形,網格,格子和ggplot2.分類數據的可視化使用條形圖、點圖、柱形圖、脊柱圖、馬賽克圖、餅圖及四折圖連續數據的可視化使用箱線圖、直方圖、散點圖及其變種、帕累託圖==============================================一、分類數據的可視化
  • r語言有什麼優劣勢及R語言的未來發展趨勢_R語言在現實中的應用
    我兩臺本本一臺Windows,一臺Linux,都用得很順手。相比之下,你有見過人在Mac上用SAS嗎。。。 這人是要多麼的想不開。。。 =。 = 6. 因為用的人越來越多,又是開源,有很多配套的「插件」為其錦上添花。
  • 【R語言】相關性分析、相關係數的顯著性檢驗及可視化
    本篇文章介紹基於R語言的相關性分析、相關係數的顯著性檢驗及可視化,該教程為個人筆記,大家也可參考學習,不足之處也歡迎大家批評指正!相關性分析用於評估兩個或多個變量之間的關聯,能通過定量指標描述變量之間的強弱、直接或間接聯繫。
  • R語言可視化之UpSetR包
    作者:嚴濤簡介集合可視化我們用得最多的是韋恩圖,韋恩圖在集合數少的時候是很好用的,但是當集合數多比如五個以上的時候那就會看花眼了,比如下面這副含有6個集合韋恩圖,是發表在Nature上的文章裡的,漂亮是漂亮,但是眼都快看花了。
  • R語言及數據挖掘應用培訓 8月15-17日北京開班
    R語言基礎及數據挖掘應用培訓 8月15-17日?北京 R是一套完整的數據處理、計算和製圖軟體系統,R是一種數學計算的環境,它可以提供一些集成的統計工具,但更大量的是它提供各種數學計算、統計計算的函數,從而使使用者能靈活機動的進行數據分析,甚至創造出符合需要的新的統計計算方法。
  • R語言筆記1:數據類型(向量、數組、矩陣、 列表和數據框)
    宏基因組按:科研中數據分析解讀佔用了我們太多時間,學習R語言是生物測序領域數據(reads count表)分析及可視化的首選。
  • Material Design設計語言-數據可視化
    隨著5G時代的到來,物聯網的興起,可視化設計在移動端的應用越來越多了。在行業內還沒有一個標準的規範可參考之前,谷歌的可視化團隊於2019年6月率先開發了數據可視化設計指南。數據可視化:主要是藉助於圖形化手段,清晰有效地傳達與溝通信息。
  • 數據可視化在移動端的應用
    隨著大數據行業的快速發展,數據可視化設計在移動端的應用越來越多。今天我們就數據可視化在移動端的使用場景、特點、注意事項以及各個使用場景進行一次簡單的分享。目錄:應用場景數據可視化的特點使用原則圖表分析畫重點1.
  • 業界| 四大機器學習程式語言對比:R、Python、MATLAB、Octave
    作者列出了這些語言(工具)的優缺點,希望對想開始學習它們的人有用。作為 MathWorks 開發的一種專用程式語言,MATLAB 允許矩陣運算、函數和數據繪圖、算法實現、用戶界面創建,以及與用其他語言(包括 C、C++、C#、Java、Fortran、Python)寫成的程序進行交互。 儘管 MATLAB 的設計初衷是數值計算,但其中的可選工具箱使用 MuPAD symbolic engine,具備符號計算能力。
  • Python數據可視化實例之繪製圖表
    Python數據可視化實例之繪製圖表原創 蟲蟲安全 2018-09-05 17:41:57得利於語言的簡單明了、豐富的數據結構、豐富的類和模塊,Python如今成了數據科學中的香餑餑,成了matlab、R語言之外又一強大的數據分析工具。拋開其他方面的、今天蟲蟲帶大家一起來探索Python在數據可視化方面的應用。
  • 掌握R語言for循環一文就夠了(認真臉)
    嗨,大家好,我就是帥氣的小編~R語言是進行統計分析和可視化的優秀語言(其實機器學習和網頁製作也可以用R,小聲說~|ω`))R語言相信大家在利用R語言進行數據分析的時候可能會有大數據分析需求。所謂大數據,很好理解,就是大樣本高維度數據,這樣的數據在當今信息爆炸時代,很是常見。比如醫學數據,數據量大,維度極高,因為醫學的檢測指標多,而且隨著基因測序特別是二代測序等高通量測序(High-throughput sequencing)技術的普及,能一次測上萬的基因,這樣就有幾萬的維度;各種真實世界的統計數據,這些數據比如汽車損耗、公司盈虧也有著大樣本的特點。
  • phyloseq | 用 R 分析微生物組數據及可視化(三)
    排序分析排序分析(Ordination analysis)是探索複雜的系統發育測序數據的得力工具。簡而言之,排序(ordination)的過程就是在一個可視化的低維空間重新排列這些樣方,使得樣方之間的距離最大程度地反映出平面散點圖內樣方之間的關係信息。phyloseq分別通過ordinate()和plot_ordination()函數,來進行排序分析及其可視化。
  • 這16個數據可視化案例,驚豔了全球數據行業
    用可視化方式,您可以充分展示數據的模式,趨勢和相關性,而這些可能會在其他呈現方式難以被發現。  數據可視化可以是靜態的或交互的。幾個世紀以來,人們一直在使用靜態數據可視化,如圖表和地圖。交互式的數據可視化則相對更為先進:人們能夠使用電腦和行動裝置深入到這些圖表和圖形的具體細節,然後用交互的方式改變他們看到的數據及數據的處理方式。  感到興奮了嗎?
  • 數據可視化技術的應用,行業優秀案例分享
    這種數據對公司很有使用價值,探尋和剖析的意向明顯,其才被更廣泛運用到每個行業中。數據可視化技術有如下特點:交互性。用戶可以方便地以交互的方式管理和開發數據。多維性。對象或事件的數據具有多維變量或屬性,而數據可以按其每一維的值分類、排序、組合和顯示。
  • 入門| 簡易指南帶你啟動 R 語言學習之旅
    (dataframe)數據幀是R語言裡最常用的數據結構之一。數據是由帶有行和列的數據表格表示的。我們通常在數據幀裡讀取一個csv文件,使用read.csv()或read.table()函數,然後把csv文件的名字作為參數輸入函數裡來實現的。我們也可以用data.frame()函數來創建一個數據幀。
  • R 語言之數據分析「Resampling」
    本節主要總結「數據分析」的「Resampling」重抽樣思想,並通過 R 語言實現。有一種東西叫作「傳統」,它在很多時候很有用,但會讓你思維固化,在新的環境下讓你出錯。在總結回歸分析和方差分析的時候 ④R語言之數據分析「初章」,我總是會在模型的建立之前提到「統計假設」,在模型建立之後進行「假設檢驗」,原因想必大家都能理解,就是因為這些「統計假設」是我們模型建立思想的基礎,是支撐我們模型正確性的「必要條件」。但是,不可否認的是,這些「必要條件」最終會成為我們「數據分析」的局限,讓我們對「不滿足條件的數據集」束手無策。
  • 大公司都是怎麼做數據可視化規範的
    如何從中啟發來構建自己的數據可視化設計指南?企業或組織進行數據可視化時,需要用數據可視化設計指南來規範信息表示形式。通常包括是什麼(圖表的類型有哪些?)、為什麼(如為什麼使用這個顏色?)和怎麼做(如用什麼工具設計?)。如果涉及到一些設計工具,如Excel、R、D3.js或Tableau,可視化指南還會提供一個模板來演示如何應用。
  • 一文讀懂ggplot2數據可視化
    ggplot2的命令是一種用R實現的繪圖語言ggplot2的代碼相對容易理解,設定各種參數較為方便,圖形也十分美觀,能用相對簡單的代碼在圖形中呈現出非常豐富的信息。不過,ggplot2的語法與傳統R函數的調用方式有很大差別,所以不少人反映學起來有些困難。在ggplot2出現以前,R繪圖都是調用函數,再通過改變函數的參數實現的。
  • 從數據可視化到交互式數據分析
    高可視性的可視化項目主要關注兩個目的:帶來靈感和幫助解釋。然而,可視化可以通過數據分析來增加對複雜問題的理解,這樣的項目雖然不多見,但不代表不重要。數據可視化的三個主要用途我知道我這樣總結可能存在嚴重簡化的風險。但是,我發現根據主要目的(有意或無意)確定數據可視化的三類主要用途是很有用的,這也有助於我在本文後面闡明一些觀點。
  • 大數據可視化技術的挑戰及應對措施
    在大數據時代,數據可視化技術在廣泛應用的同時,也面臨諸多新的挑戰。大數據可視化是一個面向應用的研究領域,本文重點從應用實踐的角度,討論在大數據背景下大數據可視化內涵、研究進展、相關技術與產品以及所面臨的一系列挑戰。