在 x 轴上对齐 geom_jitter 点并将 y 视为频率
Aligning geom_jitter points on x axis and treating y as frequency
这是一个有点奇怪的问题,但这里...
我想使用 geom_jitter 绘制一些图,其中我在 x 轴上绘制了一个分类变量,并将 y 绘制为一条直线上的各个数据点。我还希望数据点在 x 轴上的每个类别中垂直对齐。
目前我有这样的事情:
y <- rep(1:5, each = 4)
x <- rep(c("1", "2", "3", "4", "5"), each = 4)
df <- cbind(y, x)
df <- as.data.frame(df)
df$y <- as.numeric(df$y)
p <- ggplot(df, aes(x, y))
p + geom_jitter(shape = 4, color = 'darkred', width = 0, height = 1, size = 5, alpha = 1)
这给了我这个情节。
如前所述,我希望数据点垂直对齐且彼此等距。
有人知道这是否可行吗?
基本上我想把 y 处理得有点像点图中的频率。
非常感谢!
我忘了说我还希望这些点水平对齐,这样绘图看起来有点像频率直方图。
你想为此使用 ggbeeswarm
package。
library(ggplot2)
library(ggbeeswarm)
y <- rep(1:5, each = 4)
x <- rep(c("1", "2", "3", "4", "5"), each = 4)
df <- cbind(y, x)
df <- as.data.frame(df)
df$y <- as.numeric(df$y)
p <- ggplot(df, aes(x, y))
p + geom_beeswarm(shape = 4, color = 'darkred', size = 4,
groupOnX = F, # only swarm on Y axis
cex = 2) # increase space between points
这个地块
这是一个有点奇怪的问题,但这里...
我想使用 geom_jitter 绘制一些图,其中我在 x 轴上绘制了一个分类变量,并将 y 绘制为一条直线上的各个数据点。我还希望数据点在 x 轴上的每个类别中垂直对齐。
目前我有这样的事情:
y <- rep(1:5, each = 4)
x <- rep(c("1", "2", "3", "4", "5"), each = 4)
df <- cbind(y, x)
df <- as.data.frame(df)
df$y <- as.numeric(df$y)
p <- ggplot(df, aes(x, y))
p + geom_jitter(shape = 4, color = 'darkred', width = 0, height = 1, size = 5, alpha = 1)
这给了我这个情节。
如前所述,我希望数据点垂直对齐且彼此等距。
有人知道这是否可行吗?
基本上我想把 y 处理得有点像点图中的频率。
非常感谢!
我忘了说我还希望这些点水平对齐,这样绘图看起来有点像频率直方图。
你想为此使用 ggbeeswarm
package。
library(ggplot2)
library(ggbeeswarm)
y <- rep(1:5, each = 4)
x <- rep(c("1", "2", "3", "4", "5"), each = 4)
df <- cbind(y, x)
df <- as.data.frame(df)
df$y <- as.numeric(df$y)
p <- ggplot(df, aes(x, y))
p + geom_beeswarm(shape = 4, color = 'darkred', size = 4,
groupOnX = F, # only swarm on Y axis
cex = 2) # increase space between points
这个地块