r - 如何在 ggplot2 geom_jitter 上使分组更紧密?

标签 r graphics ggplot2 scatter-plot

尝试将我在 reddit 上找到的用于政治调查的代码重新用于更小的样本量。

我正在使用 geom_jitter 创建散点图。这是我的代码:

ggplot(sae, aes(Alignment, Abortion))+
geom_jitter(aes(color = "green"), size = 4, alpha = 0.6)+
labs("Alignment", "Stance on Abortion")

这是它给出的图表:enter image description here

如何使围绕“支持选择”或“支持生命”的线更加紧密地分组?我相信这张当前图表会让很多人混淆哪些观察结果是支持堕胎还是反对堕胎。

帮助解决颜色问题的加分项。

最佳答案

你有一个更大的问题。 x 轴是按字母顺序排列的,这很容易混淆,而且可能不是您想要的。此外,您可能需要同时指定 width(x 方向抖动)和 height(y 方向抖动)。

您可以使用例如

来修复顺序
sae$Alignment <- factor(sae$Alignment, levels=unique(sae$Alignment))

如下所示。

# make up some data - you have this already
set.seed(1)     # for reproducible example
sae <- data.frame(Alignment=rep(c("Left","Left Leaning","Center","Right Leaning","Right"),each=5),
                  Abortion =sample(c("Pro Choice","Pro Life","Other"),25, replace=TRUE))

# you start here...
library(ggplot2)
sae$Alignment <- factor(sae$Alignment, levels=unique(sae$Alignment))
ggplot(sae, aes(Alignment, Abortion))+
  geom_point(color = "green", size = 4, alpha = 0.6, position=position_jitter(width=0.1, height=0.1))+
  labs("Alignment", "Stance on Abortion")

另外,IMO,你可以做得更好,即。颜色:

sae$Orientation <- with(sae,ifelse(grepl("Left",Alignment),"Progressive",
                                   ifelse(grepl("Right",Alignment),"Conservative","Neutral")))
ggplot(sae, aes(x=Alignment, y=Abortion, color=Orientation))+ 
  geom_point(size = 4, alpha = 0.6, position=position_jitter(width=0.1, height=0.1))+
  labs("Alignment", "Stance on Abortion")

关于r - 如何在 ggplot2 geom_jitter 上使分组更紧密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32359985/

相关文章:

r - 如何将 postgresql 数据中的数据提取到数据框中以与 sqldf 一起使用

r - 为什么我在 `vec_as_location()` : when computing count and full join function? 中出现错误

r - 发生 NA 后,如何删除组内的观察结果?

algorithm - 用矩形填充二维形状

r - 安装 ROracle

java - 查找 Path2D 是否相交或包含另一个 Path2D 的方法

java - 描边线和计算线连接

r - 将 geom_text 放置在躲避条形图上

r - 使用 ggplot 生成曼哈顿图

r - 在同一轴上添加两个 y 轴标题