R geom_point() 点数反映列中的值
R geom_point() number of points reflect value in column
假设我有 mydf
,一个数据框如下:
Name
Value
Mark
101
Joe
121
Bill
131
我将如何在 ggplot 中创建一个散点图以获取 value
列中的数据(例如 101)并在图表上显示该数量的点?这是我不熟悉的 stat =
,还是我必须构建数据,例如,Mark 有 101 个唯一行,Joe 有 121 行,等等?
更新: 按照 Ben Bolker 的建议(非常感谢)我们可以设置 geom_jitter
的宽度另外我们可以添加一些颜色美学:
df %>%
group_by(Name) %>%
complete(Value = 1:Value) %>%
ggplot(aes(x=Name, y=Value, colour=Name))+
geom_jitter(width = 0.1)
或者按照 Henrik(非常感谢)的建议使用 uncount
更紧凑:
ggplot(uncount(df, Value, .id = "y"), aes(x = Name, y = y)) + ...
第一个回答:
是这样的吗?
library(dplyr)
library(ggplot2)
library(tidyr) # complete
df %>%
group_by(Name) %>%
complete(Value = 1:Value) %>%
ggplot(aes(x=Name, y=Value))+
geom_jitter()
假设我有 mydf
,一个数据框如下:
Name | Value |
---|---|
Mark | 101 |
Joe | 121 |
Bill | 131 |
我将如何在 ggplot 中创建一个散点图以获取 value
列中的数据(例如 101)并在图表上显示该数量的点?这是我不熟悉的 stat =
,还是我必须构建数据,例如,Mark 有 101 个唯一行,Joe 有 121 行,等等?
更新: 按照 Ben Bolker 的建议(非常感谢)我们可以设置 geom_jitter
的宽度另外我们可以添加一些颜色美学:
df %>%
group_by(Name) %>%
complete(Value = 1:Value) %>%
ggplot(aes(x=Name, y=Value, colour=Name))+
geom_jitter(width = 0.1)
或者按照 Henrik(非常感谢)的建议使用 uncount
更紧凑:
ggplot(uncount(df, Value, .id = "y"), aes(x = Name, y = y)) + ...
第一个回答: 是这样的吗?
library(dplyr)
library(ggplot2)
library(tidyr) # complete
df %>%
group_by(Name) %>%
complete(Value = 1:Value) %>%
ggplot(aes(x=Name, y=Value))+
geom_jitter()