13
我正在尝试使用ggplot2生成热图。我发现this example,我基本上试图复制我的数据,但我有困难。我的数据是一个简单的.csv文件看起来像这样:如何使用ggplot2生成热图?
people,apple,orange,peach
mike,1,0,6
sue,0,0,1
bill,3,3,1
ted,1,1,0
我想制作一个简单的热图,其中水果的名称是在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"))
当我绘制这个数据,我得到的x轴和人民在y轴水果的数量。我也没有得到代表水果数量的颜色渐变。我怎样才能得到X轴水果的名称与一个人所吃水果的数量显示为热图? 电流输出,我R中得到如下:
@GeekOnAcid我试图运行上面的原始问题的数据的代码,但它失败:错误的重新调整(值):使用:rescale(x,newrange)其中x是数字对象,newrange是新的最小值和最大值。有什么问题? – Ali
@AliSharifi是的,你是对的 - 在'ggplot2'和其他包中删除'recale'函数或将它移到其他函数中必须有一些变化。你需要的是使用scale'包中的'rescale'来重新调整数值向量以指定最小值和最大值。我更新了代码以完全重现。 –
@GeekOnAcid完美! – Ali