在R中创建具有2个变量的HeatMap

时间:2016-02-23 15:07:32

标签: r ggplot2 data-visualization heatmap

我正在尝试在R中创建一个HeatMap,以便可视化以下data

State    Discount
LA      0.118749612
MO      0.127916129
IA      0.129584375
NE      0.138754902
GA      0.146281061

除了简单地使用内置的heatmap()函数之外,我没有太多的经验。但是因为状态变量是一个不起作用的因素。我的下一个想法是尝试使用ggplot2

ggplot(data = dat, aes(State))+ geom_tile( fill = dat$Discount)

但是我一直收到这个我不完全理解的错误。

Error in eval(expr, envir, enclos) : object 'y' not found
In addition: Warning messages:
1: In min(x, na.rm = na.rm) :
  no non-missing arguments to min; returning Inf
2: In max(x, na.rm = na.rm) :
  no non-missing arguments to max; returning -Inf
3: In min(diff(sort(x))) : no non-missing arguments to min; returning Inf 

我不一定确定热图是可视化我的数据的最佳方式,这只是我的第一个想法。我也正在研究使用mapdata软件包绘制一张美国地图,用颜色显示这些折扣级别的差异,但还没有提出一个很好的方法。非常感谢我能得到的任何帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

我最终可视化我的数据如下:

首先,我在原始数据中添加了一列,以便将其与R中可用的状态数据合并。因此,我的数据文件(称为GregUSHeatMap)现在看起来像这样:

State          Code   Discount
vermont         VT    0.02
maine           ME    0.025
massachusetts   MA    0.042073333
south dakota    SD    0.074503704

然后我运行了以下内容:

require(mapdata)
states <- map_data("state")
merge <- merge(states, GregUSheatmap, by = "region")
merge <- arrange(merge, order)
heatmap1 <- qplot(long, lat, data = merge, group = group, fill = Discount, geom = "polygon")

制作以下内容: enter image description here