ggplot尺寸美观,小点

时间:2018-01-19 19:40:06

标签: r dataframe plot ggplot2 aesthetics

这可能是一个简单的问题,但我不知道答案。是否可以重新调整ggplot中的点,而不会破坏你的尺寸审美?

基本上,我们说我有以下内容:

data <- data.frame(size=c(1, 1, 2, 2, 2), x=1:5, y=1:5, color=factor(c(0, 0, 1, 1, 1)))
cols <- unique(data$color)
names(cols) <- c("group 1", "group 2")
sols <- unique(data$size)
names(sols) <- c("group 1", "group 2")

我可以将其绘制为:

ggplot(data,aes(x=x, y=y, size=size, color=color)) +
  geom_point() +
  scale_color_discrete("Dot", labels=names(cols)) +
  scale_size_continuous("Dot", breaks=sols)

显示点像:

enter image description here

这看起来很棒,但现在我说我有1000次观察我的数据而不是5次。突然之间,由于group2点太大,我的情节严重堵塞点。如何重新缩放点以使其尺寸更合适,以便我可以在没有点重叠的情况下装入更多点?我考虑过geom_density,但它并不适合我的目的,我更喜欢散点图可视化。

我的目标是重新调整我的点的一些功能,使得一般的点数比现在的尺寸小,适当的尺寸比例。为了让事情更合理,一旦我有了这个,我将对size变量进行对数变换以使事情更好地成比例(特别是,因为任何整体重新缩放的点可能会导致较小的点接近看不见的小) 。如果有更好的方法可以做到这一点,我全都耳朵!谢谢你们。

1 个答案:

答案 0 :(得分:2)

想出来。可以使用scale_size()函数直接映射到大小值,如下所示(使用初始示例):

ggplot(data,aes(x=x, y=y, size=size, color=color)) +
  geom_point() +
  scale_color_discrete("Dot", values=cols) +
  scale_size_continuous("Dot", breaks=sols) +
  scale_size(range=c(0.5, 2))

enter image description here