我是一个绝对的初学者在ggplot2和试图绘制美丽的数字使用这个软件包。我正在阅读手册,在我的分析中我不理解scale_colour_gradient()和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。然而,图是完全不同的。从黑色到白色不等。
有人能帮我了解一下发生了什么吗?具体来说,我有两个问题:
当我们设置fill = xyz时,它是设置颜色还是设置填充?
( b) scale_fill_gradient和scale_color_gradient的区别是什么?
如果我的问题对你来说太基本了,我很抱歉。我不是专家,还有很长的路要走。
更新:经过讨论,得出的结论如下:
在实验1中,:使用连续变量“密度”填充图简单。
在实验2中,我填充“密度”,然后覆盖“颜色”。因此,ggplot试图对栅格图的边框进行阴影(因为我正在覆盖颜色),并且与填充无关,因为我没有覆盖任何内容。
在实验3中,我正在填充和覆盖,所以我看到了白色和黑色的情节。
为了解决这个问题,我做了两件事:
实验2:fix #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")另外,为了补充axeman的观点,下面是我所做的:
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") 在输出中,我们将看到瓷砖的边框按照密度(即红色)被阴影化,填充颜色按照绿色得到阴影。这样,我们就可以展示填充和颜色的效果。
发布于 2016-08-24 17:04:44
在ggplot2中,color和fill分别映射。color是指点和线的颜色,而fill是指条形填充(即内部颜色)、密度填充等。如果您在aes()中映射fill=xyz,然后使用scale_color_...,它不会做任何事情,因为您必须用scale_fill_...控制fill。如果在本例中映射color,它将改变围绕密度的线条的颜色;然后您可以调用scale_color_...来更改它。
https://stackoverflow.com/questions/39128590
复制相似问题