簡體   English   中英

當x軸是因子時,使用ggplot添加垂直線

[英]Add a vertical line with ggplot when x-axis is a factor

以下代碼用於處理ggplot2的預版本.9。 這不可能了嗎?

df = data.frame(x = letters[1:26], y=abs(rnorm(26)))
ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept='m')

我收到以下錯誤:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
   object 'm' of mode 'function' was not found

我不知道(不記得)你的原版是否曾經使用舊版本的ggplot,但你可以使用另一種方法,如下所示:

ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept=which(df$x == 'm'))

希望這有幫助!!!

對於想要在分類的x軸中的自定義位置添加垂直線的人來說,這個答案是一種更廣泛的討論。

我在每組中有五組和五個因子。 我想在每組中的最后一個因子后面添加4條垂直線來分隔五組(在這種情況下位於“E”位置)。 來自@dickoa的方法對我的情況不起作用。 我用的時候:

geom_vline(xintercept=which(df$x == 'm'))

它只在第3組的'm'處添加垂直線。 我發現我可以嘗試這樣做:

geom_vline(xintercept = c(1.5,2.5,3.5,4.5))

至少這對我的情況來說是完美的。 您可能需要多次嘗試才能找到適合您情況的圖案。

我總是想知道如何根據x / y軸的比例添加垂直/水平線。 例如,xintercept = 0.5表示在x軸中間添加垂直線,xintercept = 0.25表示第一個四分之一。 但是我找不到任何關於這個主題的知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM