我最近才开始学习R.现在我要做的就是为同一个情节整合两个传说.换句话说,我希望默认大小图例根据它的大小改变颜色.
我一直在谷歌搜索几个显然似乎都不起作用的解决方案,但同样,我是R的新手,所以也许我只是做错了.
我的代码:
ggplot(Caschool, aes(x=testscr, y=avginc), colour="green") +
geom_point(aes(size=enrltot, color=enrltot)) +
geom_smooth(colour="blue") +
labs(x="Test Score", y="Average Income", title="California Test Score Data", color="Number of Students\nPer District") +
theme(
panel.grid.minor = element_blank(),
panel.grid.major=element_line(colour="grey", size=0.4),
panel.background=element_rect(fill="beige"),
axis.line=element_line(size = 1.2, colour = "black"),
plot.title = element_text(size = rel(2))) +
scale_color_continuous(limits=c(0, 30000), breaks=seq(0,30000, by=2500)) +
guides(color= guide_legend(), size=guide_legend())
Run Code Online (Sandbox Code Playgroud)
显然,我不允许发布图片,或者我会展示到目前为止的样子.
Sti*_*ibu 11
ggplot2 确实可以将尺寸和颜色图例组合成一个,但是,只有它们是兼容的才能起作用:它们需要具有完全相同的断点,否则它们不能组合.
让我举一个例子:假设您想要在大小和颜色上映射0到10之间的值.您告诉ggplo2小点使用小于5的值,大点使用较大值.然后它将按预期绘制一个小点和大点的图例.现在,您还想添加颜色,并且您需要3以下的点为绿色,上方的点为蓝色.ggplot2也将为此绘制一个传奇,但不可能将两个传说结合起来.小点必须是绿色和蓝色.通过对颜色和大小使用相同的中断可以解决该问题.
在您的示例中,您手动更改颜色标度的中断,但不是大小标度的中断.这导致不兼容的不兼容的图例.
我无法使用你的约会证明这一点,因为我没有它.所以我将创建一个例子mtcars.具有不兼容图例的变体构造如下:
p <- ggplot(mtcars, aes(x=mpg, y=drat)) +
geom_point(aes(size=gear, color=gear)) +
scale_color_continuous(limits=c(2, 5), breaks=seq(2, 5, by=0.5)) +
guides(color= guide_legend(), size=guide_legend())
Run Code Online (Sandbox Code Playgroud)
给出了以下情节:
如果我现在为大小添加相同的中断,
p + scale_size_continuous(limits=c(2, 5), breaks=seq(2, 5, by=0.5))
Run Code Online (Sandbox Code Playgroud)
我得到的情节只有一个传说:
对于您的代码,这意味着您应该将以下内容添加到您的图中:
+ scale_size_continuous(limits=c(0, 30000), breaks=seq(0,30000, by=2500))
Run Code Online (Sandbox Code Playgroud)
一点点评论:你打算colour = "green"在打电话中使用ggplot什么?我没有看到它有任何影响,因为你在以后使用的两个geom中再次设置颜色.也许是一个较旧的情节变体的遗物?
| 归档时间: |
|
| 查看次数: |
3284 次 |
| 最近记录: |