【发布时间】:2019-09-30 22:21:17
【问题描述】:
我正在尝试制作一个点图,其中根据字符变量对数字 y 值进行分组。这很好用,但我也想根据另一个变量更改点的大小,以便图中有三个不同大小的点。我可以更改点的大小,只是 R 似乎做得不对。
我找不到好的样本数据集,所以我做了一个简单的例子:
#Making some sufficient data:
y1 <- c(1,1,2,3,4,5,6,6)
x1 <- c('A','A','B','C','A','A','B','B')
size1 <- c(0.3,0.3,0.3,0.3,0.3,0.6,0.6,1.0)
data1 <- data.frame(x1,y1,size1)
data1
#define size as a vector: apparently it helps some problems
size2 <- data1$size1
#plot my dotplot!
ggplot(data1, aes(x=x1,y=y1)) +
geom_dotplot(binaxis="y", stackdir="center", dotsize=size2)
总的来说,点图工作正常。 y 变量根据它们的 A、B 或 C 组进行分组。但是,点大小不正确:C 组中唯一的点应该很小(dotsize=0.3),A 组 y=1 处的两个点应该两者大小相等……依此类推。
Dotplot with all sorts of dotsize inaccuracies
“在循环中绘制不同数据集时,geom_dotplot 点大小会发生变化”问题 (geom_dotplot dot sizes change when plotting different datasets in loop) 表示 geom_dotplot 的点大小并不完全是点大小,而是与 bin 宽度相关。这可以解释为什么我有麻烦。但是,我不确定如何解决这个问题。有没有办法可靠地改变 ggplot2 点图中的点大小,或者我应该尝试使用比 geom_dotplot 更灵活的工具制作点图? (重新启动 R 和我的电脑不起作用。)
干杯!
【问题讨论】: