2012-03-31 42 views
3

我知道我可以使用plot命令中的type =「o」參數創建一個帶有線和點的繪圖。我想要對此有更多的控制 - 我希望能夠將「o」繪製爲完整點,具有我選擇的黑色邊框和填充顏色,自定義尺寸和與線條不同的顏色。線條相同,我想讓它變得更厚,並且選擇顏色。我將如何繼續這樣做?如何在R中創建一個具有自定義點的繪圖?

我發現到現在爲止只是一個簡單的

plot(y, type= "o") 

這是我的需求太可憐了。

我對使用ggplot不感興趣,而是使用R的內部圖庫。 任何幫助表示讚賞。

+2

ŧ仔細看看'?points',包括運行示例('example(「points」)')... – 2012-03-31 17:26:28

+0

謝謝。我會看看?點,但這些例子似乎並沒有提供我需要的東西。他們確實有一個堅實的圈子,但沒有邊界。 – kloop 2012-03-31 17:29:58

+0

仔細觀察,在第二個繪圖(淺藍色背景,深藍色邊緣),第三個繪圖(點類型21-25;黃色背景,紅色邊緣) – 2012-03-31 18:02:29

回答

9

你可以使用分層(我沒有在任何基礎工作更過分的社會研究者我愛ggplot的facet_grid,所以有可能是一個更好的方法),如:

x <- sort(rnorm(25)) 
y <- sort(rnorm(25)) 
z <- as.factor(sample(LETTERS[1:5], 25, r=TRUE)) 

plot(x, y, pch = 19, cex = 1.3) 
par(new = TRUE) 
plot(x, y, pch = 19, cex = 1, col = z) 

哪給你: enter image description here

+0

我建議在第二個繪圖之前添加opar < - par(new = TRUE)打電話給'情節',並在(後來防止未來的驚喜)之後參與(opar)。或通過調用'points'(使用相同的參數)將第二個調用替換爲'plot'。 – 2012-03-31 18:48:39

+2

分層不需要用彩色填充來獲得點。 'bg'和'pch = 21'將會成功。 – jbaums 2012-04-01 05:28:04

13

所有你需要的信息應該存在於?plot?points,正如@BenBolker所建議的。特別是,您希望使用pch=21,並使用bg參數指定背景色,使用cex指定大小,並使用lwd指定線寬。

如果您希望該線條與點邊框的厚度不同,則需要首先繪製線條,然後重疊這些點。

例如:

y <- sample(10) 
plot(y, lwd=6, type='l') 
points(y, bg='tomato2', pch=21, cex=3, lwd=3) # tomato2 is a personal fave 

enter image description here

你也可以提供lwdcexcol給點矢量撥打:

plot(y, lwd=6, type='l') 
points(y, bg=rainbow(10), pch=21, cex=seq(1, by=0.2, length.out=10), 
     lwd=seq(2, by=1, length.out=10)) 

enter image description here

相關問題