r - 垂直点显示同一图中多个组的分布

标签 r ggplot2 visualization categorical-data

我有一个具有以下结构的数据框:

dat <- data.frame(
values = c (2,  5,  6,  7,   
            4,  6,  8,  9,   
             6, 8,  10, 13),
race = c("black", "black", "black",  "black", 
          "white", "white", "white",   "white",
           "Hispanic", "Hispanic",  "Hispanic",  "Hispanic"))

我想绘制数据图表,以便每个“种族”出现在 x 轴上,“值”出现在 y 轴上。我真的不想要条形图 - 相反,我想绘制所有数据点(因为条形图掩盖了可能存在异常值的事实,并且它隐藏了每个分布中的差距等)

我知道大多数人在这里更喜欢箱线图、 fiddle 图或其他变体...但我真的很想要一个垂直点图,它按种族群体显示所有数据点,就像我手绘的那样(请见下文)。

我尝试过以下方法:

p <- ggplot(data = dat, 
aes(x = race, y =  values)) + geom_point()
p + facet_wrap(~race, nrow = 1)

但是,当然,我最终得到了 3 个面板 - 像这样:facet-plot

但我希望所有 3 列点都出现在一个面板中。

这确实是我想要的:drawn-by-hand

(我手工绘制的图表并不反射(reflect)我在上面的数据框中的实际数据,但你明白了)

最佳答案

只是为了好玩:

“这才是我真正想要的”

library(ggplot2)

dat <- data.frame(
  values = c (2,  5,  6,  7,   
              4,  6,  8,  9,   
              6, 8,  10, 13),
  race = c("Black", "Black", "Black",  "Black", 
           "White", "White", "White",   "White",
           "Hispanic", "Hispanic",  "Hispanic",  "Hispanic"))


ggplot(data = dat, 
       aes(x = race, y =  values, color = race)) + 
  geom_point(size = 4, show.legend = FALSE)+
  scale_color_manual(values = c("#0102fc", "#f3554f", "#04cefe"))+
  scale_y_continuous(breaks=c(0:max(dat$values)))+
  labs(x = "", y = "", color="")+
  expand_limits(x = 0, y = 0)+
  theme_classic()+
  theme(
    text = element_text(size=16),
    axis.line = element_line(colour = '#074489', linewidth = 1.5),
    axis.text.y = element_text(colour = "#074489"),
    axis.text.x = element_text(colour = c("#0102fc", "#f3554f", "#04cefe")),
    axis.ticks.length=unit(.25, "cm")
    )

enter image description here

关于r - 垂直点显示同一图中多个组的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75968079/

相关文章:

r - 来自data.frame的唯一单词列表

随着时间的推移构建子集的滚动中位数

r - 如何从 apply() 函数输出中获取行名?

r - 按组在ggplot中颜色和更改线型

r - 选择 dataTable 中的行以显示 Shiny 中另一个表中的数据

python - Seaborn:避免绘制缺失值(线图)

python - 如何使用 R reticulate 激活现有的 Python 环境

r - 如何通过具有相同轴但用 R 向前更改 x 轴来绘制多个图形?

git - 如何仅使用分支名称而不是单个提交来鸟瞰 git 树?

d3.js - 如何可视化两个图之间的差异