R語言數據可視化0—ggplot2介紹

来源:http://www.cnblogs.com/dsjxmz/archive/2017/05/19/6879000.html
-Advertisement-
Play Games

ggplot2介紹:內容包含什麼是ggplot2、與lattice包的比較、基本概念、一個例子。 ...


1. 什麼是ggplot2?

ggplot2是用於繪圖的R語言擴展包,其理念根植於《Grammar of Graphics》一書。它將繪圖視為一種映射,即從數學空間映射到圖形元素空間。例如將不同的數值映射到不同的色彩或透明度。該繪圖包的特點在於並不去定義具體的圖形(如直方圖,散點圖),而是定義各種底層組件(如線條、方塊)來合成複雜的圖形,這使它能以非常簡潔的函數構建各類圖形,而且預設條件下的繪圖品質就能達到出版要求。

2. 與lattice包的比較

ggplot2和lattice都屬於高級的格點繪圖包,初學R語言的朋友可能會在二者選擇上有所疑惑。從各自特點上來看,lattice入門較容易,作圖速度較快,圖形函數種類較多,比如它可以進行三維繪圖,而ggplot2就不能。ggplot2需要一段時間的學習,但當你跨過這個門檻之後,就能體會到它的簡潔和優雅,而且ggplot2可以通過底層組件構造前所未有的圖形,你所受到的限制只是你的想象力。

建議兩種繪圖包都可以研究一下。如果時間緊張,需要在一兩天之內為論文做一張圖,那麼推薦用lattice,如果時間充裕,推薦學習ggplot2。

3. 基本概念

  • 圖層(Layer):如果你用過photoshop,那麼對於圖層一定不會陌生。一個圖層好比是一張玻璃紙,包含有各種圖形元素,你可以分別建立圖層然後疊放在一起,組合成圖形的最終效果。圖層可以允許用戶一步步的構建圖形,方便單獨對圖層進行修改、增加統計量、甚至改動數據。
  • 標度(Scale):標度是一種函數,它控制了數學空間到圖形元素空間的映射。一組連續數據可以映射到X軸坐標,也可以映射到一組連續的漸變色彩。一組分類數據可以映射成為不同的形狀,也可以映射成為不同的大小。
  • 坐標系統(Coordinate):坐標系統控制了圖形的坐標軸並影響所有圖形元素,最常用的是直角坐標軸,坐標軸可以進行變換以滿足不同的需要,如對數坐標。其它可選的還有極坐標軸。
  • 位面(Facet):很多時候需要將數據按某種方法分組,分別進行繪圖。位面就是控制分組繪圖的方法和排列形式。

4. 一個例子

下麵用ggplot2包內帶的汽車測試數據(mpg)來舉個例子,用到的三個變數分別是發動機容量(displ)、高速公路上的每加侖行駛里數(hwy)、汽缸數目(cyl)。首先載入ggplot2包,然後用ggplot定義第一層即數據來源。其中aes參數非常關鍵,它將displ映射到X軸,將hwy映射到Y軸,將cyl變為分類數據後映射為不同的顏色。然後使用+號添加了兩個新的圖層,第二層是加上了散點,第三層是加上了loess平滑曲線。

library(ggplot2)
ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))+
  geom_point() + geom_smooth()

 

簡短的介紹到這裡,詳細的介紹請看http://www.open-open.com/lib/view/open1410081720011.html,文章摘自該網站。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、random常用模塊 1.random.random() 隨機生成一個小數 2.random.randint(m,n) 隨機生成一個m到n的整數(包括n) 3. random.randrange(m,n) 隨機生成m到n中的一個數,包括 m 但是不包括 n 4. random.smaple(so ...
  • 1 <bean name="u" class="com.bjsxt.dao.impl.UserDAOImpl"></bean> 1 <bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl"></bean> 用id和name的效果是一樣的,唯一的不同是 n ...
  • Ant path 匹配原則 在Spring MVC中經常要用到攔截器,在配置需要要攔截的路徑時經常用到<mvc:mapping/>子標簽,其有一個path屬性,它就是用來指定需要攔截的路徑的。例如: <mvc:interceptor><mvc:mapping path="/**" /><bean c ...
  • PHP中include和require關鍵字,都可以在一個腳本文件中包含另一個腳本文件,但是兩者卻有幾點不同處: 1.include包含文件,出錯時會產生一個E_WARNING(警告),但是腳本仍舊可以繼續運行 2.require包含文件,會產生一個E_COMPILE_ERROR(錯誤),腳本終止 ...
  • 給出一個長為n的數列,以及n個操作,操作涉及區間加法,單點查值。 這是一道能用許多數據結構優化的經典題,可以用於不同數據結構訓練。 數列分塊就是把數列中每m個元素打包起來,達到優化演算法的目的。 以此題為例,如果我們把每m個元素分為一塊,共有n/m塊,每次區間加的操作會涉及O(n/m)個整塊,以及區間 ...
  • 分塊:顧名思義,把一個區間分成不同的塊,然後由原來的每個點暴力轉換為每個塊的暴力,這樣就大大減小了時間複雜度 可能涉及的幾個詞語解釋: 區間:數列中連續一段的元素 區間操作:將某個區間[a,b]的所有元素進行某種改動的操作 塊:我們將數列劃分成若幹個不相交的區間,每個區間稱為一個塊 整塊:在一個區間 ...
  • a) setter(重要) b) 構造方法(可以忘記),簡單例子: 用的不多,具體的構造函數重構應用可以參考源文檔 c) 介面註入(可以忘記)。 代碼鏈接: http://pan.baidu.com/s/1pKAe5Vt 密碼: qvyy jar 包: 鏈接: http://pan.baidu.co ...
  • R語言數據可視化之ggplot2包,從柱狀圖開始。從簡單的業務量統計開始。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...