本節書摘來自異步社群《r繪圖系統(第2版)》一書中的第2章,第2.4節,作者【紐西蘭】paul murrell,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
表2.2和圖2.5 展示了可以用于繪制雙變量圖形的傳統繪圖函數。

圖2.5 用于繪制雙變量的進階繪圖函數。在所有示例圖中,當某一個函數可以繪制超過一種資料類型時,示例中所繪制圖形對應的資料類型将被标記出來(用灰體)。
plot()函數也可以接受不同格式的兩個變量作為參數:一對數值向量;一個數值向量和一個因子;兩個因子;一個包含兩個向量或者因子的清單(以x和y命名);一個二維表;一個有兩列的矩陣或者是資料框(第一列被認為是x參數);或者是一個形如y~x的關系式。
如果兩個變量都是數值的,輸出結果就是一幅散點圖。如果x是一個因子而y是一個數值向量,輸出結果将是一個箱線圖,箱線圖中每一個箱形對應x的一個水準。如果x是數值類型而y是因子,結果将是一個(分組的)散列圖,如果兩個變量都是因子,結果将是一個脊柱圖。如果賦給plot()函數的是一個計數表,輸出結果會是一個馬賽克圖。
兩個函數可以用于替代散點圖以解決重繪制的問題,這些問題經常發生在數值有重複或者有大量的點要繪制的時候。sunflowerplot()函數在每一個給定的位置繪制一個特殊的符号來表示有多少點被重繪制了,而smoothscatter()函數則繪制了散點圖中表示資料點密度的圖形(而不是繪制單個資料點)。另外,有一個繪制多散列圖的方法是給stripchart()函數提供一個包含數值向量的清單。
當x是一個因子而y是一個數值向量的時候,另一個繪制多箱線圖的方法是使用boxplot()函數,而提供給boxplot()函數的資料則或者是一個包含數值向量的清單或者是一個形如y~x的表達式,而這裡x是一個因子。
如果資料是由數值矩陣構成的,其中每一列或者每一行代表一個不同的分組,那麼barplot()函數可以根據數值繪制一個堆積式的或者邊靠邊式的條形圖,而函數dotchart()可以繪制一個點圖。
如果x是數值型的而y是一個因子,那麼spineplot()函數可以繪制一幅脊椎圖,而cdplot()函數則會繪制一幅條件密度圖。這兩個函數都可以接受形如y~x關系式的資料。
如果要繪制的兩個變量都是因子,也有很多選項可以繪制所需要的圖形。給定初始的因子,spineplot()函數将繪制一幅類似plot()函數接受兩個因子所繪制圖形的脊柱圖。而另一個選項就是處理兩個因子所對應的計數表。給定一個計數表,mosaicplot()函數将繪制一幅類似plot()函數所繪制的馬賽克圖形。mosaicplot()還可以接受形如y~x的表達式作為參數,這裡y和x都是因子。
在兩個因子都隻有兩個水準的特殊情況下,assocplot()函數可以繪制一幅cohen-friendly關聯圖,而fourfoldplot()函數可以繪制一幅四扇圖。本書第13章有更多專門用來展示分類變量的示例圖形。
此外,除了數值向量和因子等資料類型,還有一種重要的基本資料類型日期(或者稱為日期-時間)。如果賦予plot()函數的x或者y變量 “date” 或者 “posixt” 類型的對象,那麼對應的坐标軸将會以日期作為标簽(例如,使用月份的名稱)。