ggplot2 geom_line表示组大小

时间:2015-01-30 00:00:45

标签: r ggplot2

关注http://docs.ggplot2.org/current/aes_group_order.html

h <- ggplot(Oxboys, aes(age, height))
h + geom_line(aes(group = Subject))

可生产

a line plot with one line per Subject

但是如果两个主题具有完全相同的行,则一个主题的行将隐藏另一个。我们可以使用线条粗细或强度来表示拥有相同线条的受试者数量吗?我们可以使用geom_point()添加一个气泡来指示主题数吗?

2 个答案:

答案 0 :(得分:3)

使用geom_line(aes(group = 'Subject'), alpha = .5)。玩弄alpha值。

答案 1 :(得分:3)

您可以通过首先映射coloursize美学,然后使用scale_size_manualscale_colour_manual函数调整其值来完成此操作。以下是该方法的演示。

# a fake data set with two pairs of identical lines:
df <- data.frame(t = c(1:10, 1:10, 1:10, 1:10), 
                 a = c(1:10, 1:10, seq(5, 8, length =10), seq(5, 8, length =10)), 
                 c = rep(c("a", "b", "c", "d"), each = 10))

ggplot(df, aes(x = t, y = a, group = c)) + 
geom_line(aes(size = c, colour = c)) + 
scale_size_manual(values = c(4, 2, 3, 1.5)) + 
scale_colour_manual(values = c("black", "red", "blue", "yellow"))

enter image description here

您必须考虑分组因子(在示例c中)的排序方式,因为这些行也按此顺序绘制。因此,首先绘制的线应该为size得到更大的值。