[英]Trying to draw a hollow point over the x-axis in ggplot2
我正在使用 geom_point 來繪制一些點。 我正在使用 scale_shape_manual 將點形狀設置為空心正方形(形狀 #22)。 然后我使用 scale_color_manual 用白色填充正方形。
以上工作按預期工作。 但是,我的一些觀點直接位於(或非常接近)我的 x 軸上。 在這些情況下,我看到的是 x 軸穿過它的空心盒子。 我真正想要的是白色填充框位於 x 軸頂部,覆蓋它。
感謝您的建議:這是一個演示我的問題的簡單代碼示例:
library("ggplot2")
theme_set(theme_classic())
theme_update(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
x_values <- c(1,2)
y_values <- c(3,4)
plot_data <- data.frame(x_values, y_values)
ggplot(plot_data, aes(x=x_values, y=y_values)) +
geom_point(size=5, shape=22, colour="red", fill="white") +
scale_y_continuous(expand=c(0,0)) +
coord_cartesian(clip="off")
這是 output:
可以看到右上角(x=2,y=4)的點是一個空心盒子。 左下角的點(x=1,y=3)也是一個空心盒子,但是可以看到盒子里面的x軸。 我想覆蓋那里的x軸。
我認為填充會做到這一點,但似乎 x 軸是最后繪制的。
只是為了表明填充正在工作,如果您將填充設置為綠色,這里是 plot:在此處輸入圖像描述
形狀 21 到 25 具有單獨的邊框並填充 colors。 邊框顏色用color
設置,內部填充顏色用fill
設置。 因此,如果您希望每個點標記具有相同的形狀和顏色,您可以執行以下操作:
geom_point(shape=22, colour="red", fill="white")
在將數據列映射到colour
或fill
美學的情況下,您可以使用scale_colour_manual()
和/或scale_fill_manual()
手動設置顏色/填充映射,但想法是相同的。 使用colour
作為點標記的邊框並fill
內部。 同樣,當您將數據列 map 用於shape
美學時,您將使用scale_shape_manual()
來選擇特定的形狀映射。
更新:我忘記了軸是在點的“頂部”繪制的,當您關閉剪輯時,這一點變得明顯。 您可能需要關閉標准 x 軸並自己繪制。 可能有更好的方法,但目前還沒有想到。 這是一個例子:
ggplot(plot_data, aes(x=x_values, y=y_values)) +
annotate(x=0.95, xend=2.05, y=3, yend=3, geom='segment') +
annotate(x=seq(1,2,0.25), xend=seq(1,2,0.25), y=3, yend=2.99, geom="segment") +
geom_point(size=5, shape=22, colour="red", fill="white") +
coord_cartesian(clip="off") +
theme(axis.line.x=element_blank(),
axis.ticks.x=element_blank()) +
scale_x_continuous(limits=c(0.95,2.05), expand=c(0,0), breaks=seq(1,2,0.25)) +
scale_y_continuous(expand=c(0,0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.