使用 2 个变量在 R 中创建热图

Creating a HeatMap in R with 2 Variables

我正在尝试在 R 中创建热图,以便可视化以下内容 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 包来绘制一张美国地图,以按颜色显示这些折扣级别的差异,但还没有想出一个好的方法。如果我能得到任何帮助,我将不胜感激,谢谢。

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

首先,我在原始数据中添加了一列,以便可以将其与 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")

生成以下内容: