更改上限scale_fill_gradient2也会影响值<0的颜色分类,因为0周围的颜色分布似乎总是对称的,是否有办法获得颜色值的不对称分布?
这是一个使用的情节的最小例子geom_tile():
data <- read.csv("http://protzkeule.de/data.csv")
p <- ggplot(data = data, aes(x = variable, y = meas)) + geom_tile(aes(fill = value))
Run Code Online (Sandbox Code Playgroud)
具有对称限制的图:
p + scale_fill_gradient2(low = "blue", mid = "white", high = "red", guide = "colorbar",
limits = c(-0.1, 0.1))
Run Code Online (Sandbox Code Playgroud)
但是当更改上限时,较低的颜色映射也会改变(观察颜色条):
p + scale_fill_gradient2(low = "blue", mid = "white", high = "red", guide = "colorbar",
limits = c(-0.1, 0.3))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ggplot2生成热图.我找到了这个例子,我基本上试图用我的数据复制,但我遇到了困难.我的数据是一个简单的.csv文件,如下所示:
people,apple,orange,peach
mike,1,0,6
sue,0,0,1
bill,3,3,1
ted,1,1,0
Run Code Online (Sandbox Code Playgroud)
我想制作一个简单的热图,其中水果的名称在x轴上,而人在y轴上.该图应描绘正方形,其中每个正方形的颜色表示所消耗的水果数量.对应的方块mike:peach应该是最暗的.
这是我用来尝试生成热图的代码:
data <- read.csv("/Users/bunsen/Desktop/fruit.txt", head=TRUE, sep=",")
fruit <- c(apple,orange,peach)
people <- data[,1]
(p <- ggplot(data, aes(fruit, people)) + geom_tile(aes(fill = rescale), colour = "white") + scale_fill_gradient(low = "white", high = "steelblue"))
Run Code Online (Sandbox Code Playgroud)
当我绘制这些数据时,我得到x轴上的水果数和y轴上的人.我也没有得到代表水果数量的颜色渐变.如何在x轴上获取水果的名称,并将人们吃掉的水果数量显示为热图?我在R中获得的当前输出如下所示:
