我是一个绝对的初学者,ggplot2
并尝试使用此程序包绘制漂亮的人物。我正在阅读本手册,但我不了解scale_colour_gradient()
vs.之间的区别。scale_fill_gradient()
在我的分析中,我将使用“假设”进行观察,因为我不确定我的结论。
这是对我有用的原始代码:
实验1
erupt <- ggplot(faithfuld, aes(waiting, eruptions, fill = density)) +
geom_raster()
erupt
假设:使用默认颜色(即蓝色)绘制喷绘密度
我想进一步尝试ggplot2
的scale_colour_gradient()
和scale_fill_gradient()
实验2
erupt <- ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill=density)) +
scale_colour_gradient(low = "white", high = "black")
erupt
现在,我得到了与实验1相同的图表。这是否意味着如果在ggplot的美学设计中使用fill = xyz,我将设置颜色渐变而不是填充渐变吗?要了解我为什么要问这个问题,让我们看一下实验3。
实验3
erupt <- ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill=density)) +
scale_fill_gradient(low = "white", high = "black")
erupt
在这里,我唯一更改的是使用scale_fill_gradient
而不是scale_color_gradient
。但是,该图是完全不同的。从黑色到白色。
有人可以帮我了解发生了什么吗?具体来说,我有两个问题:
a)当我们设置fill = xyz时,它是设置颜色还是填充?
b)scale_fill_gradient
和之间有什么区别scale_color_gradient
?
如果我的问题对您来说太基本了,我深表歉意。我不是专家,任重而道远。
更新:经过讨论,得出的结论是:
在实验1中:该图使用连续变量“密度”简单地填充。
在实验2中,我填充“密度”,但随后覆盖“颜色”。因此,ggplot尝试着色栅格图的边框(因为我覆盖颜色)并且与填充无关,因为我没有覆盖任何内容。
在实验3中,我正在填充和覆盖,所以我看到了白色和黑色的图。
为了解决这个问题,我做了两件事:
实验2:修复#1:
ggplot(faithfuld, aes(waiting, eruptions, fill = density)) +
geom_raster(aes(colour=density)) +
scale_colour_gradient(low = "white", high = "red") +
scale_fill_gradient(low = "white", high = "green")
或者
修复#2:
ggplot(faithfuld, aes(waiting, eruptions, fill = density)) +
geom_raster(aes(colour=density)) +
scale_colour_gradient(low = "white", high = "black")
另外,为了增加斧头侠的观点,这是我所做的:
ggplot(faithfuld, aes(waiting, eruptions, fill = density)) +
geom_tile(aes(fill=density, col=density)) +
scale_colour_gradient(low = "white", high = "red") +
scale_fill_gradient(low = "white", high = "green")
在输出中,我们将看到瓷砖的边界按照密度(即红色)着色,填充色按照绿色进行着色。因此,通过这种方式,我们可以演示填充和颜色的效果。
在中ggplot2
,color
和fill
分别映射。color
指的是点和线的颜色,而fill
指的是如果你映射到酒吧填充(即内部颜色),密度填充等fill=xyz
内aes()
,然后使用scale_color_...
,它不会做任何事情,因为你必须控制fill
使用scale_fill_...
。如果color
在这种情况下进行贴图,它将改变密度周围线条的颜色;那么您可以致电scale_color_...
进行更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句