我想制作一个覆盖有圆点的条形图,其中两个都有单独的图例。另外,我想使用aes()
之外的参数选择条形的颜色和点的大小。由于两者都未映射,因此不会生成任何图例。
1)如何手动为填充和尺寸添加图例?
library(ggplot2)
d <- data.frame(group = 1:3,
prop = 1:3 )
ggplot(d, aes(x=group, y=prop)) +
geom_bar(stat="identity", fill="red") +
geom_point(size=5)
这就是我提出的:我使用虚拟映射并根据我的需要修改了图例。但这种方法对我来说显得很笨拙。
2)是否有手动方式说:添加带有此标题的图例,这些形状,这些颜色等?
d <- data.frame(dummy1="d1",
dummy2="d2",
group = 1:3,
prop = 1:3 )
ggplot(d, aes(x=group, y=prop, fill=dummy1, size=dummy2)) +
geom_bar(stat="identity", fill="red") +
geom_point(size=5) +
scale_fill_discrete(name="fill legend", label="fill label") +
scale_size_discrete(name="size legend", label="size label")
上面我将fill
映射到dummy1
。所以我希望scale_fill_discrete
改变这个传说。但它似乎会修改size
图例。
3)我不确定这里出了什么问题。有什么想法吗?
答案 0 :(得分:4)
我不确定你为什么说&#34;另外,我想用aes()&#34;之外的参数选择条形的颜色和点的大小。这是你正在尝试做的事情,还是你必须要做的事情,因为ggplot是如何工作的?
如果它是后者,那么一个解决方案就是 -
library(ggplot2)
d <- data.frame(group = 1:3,
prop = 1:3 )
ggplot(d, aes(x=group, y=prop)) +
geom_bar(stat="identity",aes( fill="label")) +
geom_point(aes(size='labelsize')) +
scale_fill_manual(breaks = 'label', values = 'red')+
scale_size_manual(breaks = 'labelsize', values = 5)