matplot - r plot axis



在點周圍放置邊框 (2)

它有點模糊,但你必須使用pch > 20(我認為21:25是相關的形狀): fill控制內部colour (u)環和colour控制邊緣線。

(g0 <- ggplot(df, aes(x=x, y=y))+geom_point(aes(fill=id), 
       colour="black",pch=21, size=5))

更新 :使用最近的ggplot2版本(例如2.0.0,不知道它有多遠)默認指南是一個顏色欄。 需要g0 + guides(fill="legend")來獲得帶有點的圖例,如此處所示的圖表所示。 默認中斷也發生了變化:要完全複製此圖,您需要g0 + scale_fill_continuous(guide="legend",breaks=seq(0.2,0.8,by=0.1)) ...

相關但不完全相同: 如何在R中創建帶有自定義點的圖? 。 對該問題的接受答案使用了@joran的回答中所示的分層技術,但是(IMO)@jbaums使用pch=21技術的答案是優越的。 (我認為shape=21是另一種選擇,甚至可能更喜歡pch=21

PS你應該把colour 放在映射之外 (如果你想要絕對設置它而不是根據某個變量的值...)

我想使用ggplot2在散點圖上的點周圍放置黑色邊框,這些點基於數據填充。 此外,我想避免使用黑色邊框的圖例條目,因為它將在每個點上。 基本上我正在尋找這個情節,但每個點周圍都有黑色邊框。

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y))+geom_point(aes(colour=id), size=12)

作為獎勵,我想沒有黑色邊框的傳奇條目。 我最好的嘗試是:

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y))+geom_point(aes(fill=id, colour="black"), size=12)

這使:

我不明白為什麼那不能給我我想要的東西,更糟糕的是(對於我在ggplot2中的教育)我不明白為什麼它似乎沒有將填充顏色映射到任何東西! 有幫助嗎?

也許如果我可以獲得輪廓並填充正確的映射,我可以使用像here最後一組數字中的那個黑客關閉傳說。


Answer #1

我有同樣的問題,但我需要一個允許抖動的解決方案。 為此,您需要使用帶有邊框的填充形狀的pch和gridExtra包中的grid.edit函數。 使用你的例子:

df <- data.frame(id=runif(12), x=1:12, y=runif(12))
ggplot(df, aes(x=x, y=y, fill=id))+geom_point(pch=21, colour="Black", size=12)

library(gridExtra)
grid.edit("geom_point.points", grep = TRUE, gp = gpar(lwd = 3))




ggplot2