gpt4 book ai didi

R - ggplot geom_dotplot 形状选项

转载 作者:行者123 更新时间:2023-12-04 08:51:40 26 4
gpt4 key购买 nike

我想用geom_dotplot通过点的形状(而不是文档建议的颜色)来区分两个不同的变量。例如:

library(ggplot2)
set.seed(1)
x = rnorm(20)
y = rnorm(20)
df = data.frame(x,y)
ggplot(data = df) +
geom_dotplot(aes(x = x), fill = "red") +
geom_dotplot(aes(x=y), fill = "blue")

即在下面的例子中区分 x 和 y

enter image description here

我想将所有 x 设置为点,将 y 设置为三角形。

这可能吗?
谢谢!

最佳答案

您可能可以使用来自 geom_dotplot 的信息加上 base R 的带状图函数将类似于您想要的东西组合在一起。

#Save the dot plot in an object.

dotplot <- ggplot(data = df) +
geom_dotplot(aes(x = x), fill = "red") +
geom_dotplot(aes(x=y), fill = "blue")

#Use ggplot_build to save information including the x values.
dotplot_ggbuild <- ggplot_build(dotplot)

main_info_from_ggbuild_x <- dotplot_ggbuild$data[[1]]
main_info_from_ggbuild_y <- dotplot_ggbuild$data[[2]]

#Include only the first occurrence of each x value.

main_info_from_ggbuild_x <-
main_info_from_ggbuild_x[which(duplicated(main_info_from_ggbuild_x$x) == FALSE),]

main_info_from_ggbuild_y <-
main_info_from_ggbuild_y[which(duplicated(main_info_from_ggbuild_y$x) == FALSE),]

#To demonstrate, let's first roughly reproduce the original plot.

stripchart(rep(main_info_from_ggbuild_x$x,
times=main_info_from_ggbuild_x$count),
pch=19,cex=2,method="stack",at=0,col="red")

stripchart(rep(main_info_from_ggbuild_y$x,
times=main_info_from_ggbuild_y$count),
pch=19,cex=2,method="stack",at=0,col="blue",add=TRUE)

enter image description here
#Now, redo using what we actually want.
#You didn't specify if you want the circles and triangles filled or not.
#If you want them filled in, just change the pch values.

stripchart(rep(main_info_from_ggbuild_x$x,
times=main_info_from_ggbuild_x$count),
pch=21,cex=2,method="stack",at=0)

stripchart(rep(main_info_from_ggbuild_y$x,
times=main_info_from_ggbuild_y$count),
pch=24,cex=2,method="stack",at=0,add=TRUE)

enter image description here

关于R - ggplot geom_dotplot 形状选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com