geom_raster():简单示例

geom_raster():简单示例,r,ggplot2,R,Ggplot2,当我遵循以下步骤时,geom_raster()没有问题,但我没有成功地根据模拟数据绘制出自己的绘图。例如,给定以下数据 R>true x1 x2 risk .82 .80 2.44 .87 -.72 -.57 -.42 .97 1.52 .66 .89 2.44 .28 -.83 -1.38 我使用以下内容构建ggplot: R> p <- ggplot(true, aes(x1, x2)) + geom_rast

当我遵循以下步骤时,geom_raster()没有问题,但我没有成功地根据模拟数据绘制出自己的绘图。例如,给定以下数据

R>true

x1     x2    risk
.82    .80   2.44
.87    -.72  -.57
-.42   .97   1.52
.66    .89   2.44
.28   -.83   -1.38
我使用以下内容构建ggplot:

R> p <- ggplot(true, aes(x1, x2)) +
 geom_raster(aes(fill = risk))

R> p
以下代码比上一个示例更好地再现了该问题:

true <- list(x1 = c(0.829612086992711, 0.874150826595724, -0.427720930427313, 
0.660895252134651, 0.283491037786007, 0.0381918982602656, 0.473176629282534, 
-0.730666805524379, 0.313984580803663, 0.410129568073899, -0.0845164475031197, 
0.438224503304809, 0.869344494305551, -0.489142351318151, -0.0754143549129367, 
0.880029045511037, 0.956452856771648, -0.765025276690722, -0.0500058368779719, 
0.120665492489934), x2 = c(0.808062774594873, -0.722579664550722, 
0.977783457841724, 0.89333646511659, -0.835124883800745, 0.0284235686995089, 
-0.219593065790832, 0.811476261820644, -0.10606074379757, 0.672008519992232, 
0.475191235542297, 0.622110282536596, -0.22378343436867, 0.370339458808303, 
-0.992103322409093, 0.665832160506397, -0.985331706237048, -0.584682054352015, 
0.813202815596014, 0.223557286895812), risk = c(2.44573763618246, -0.57100850250572, 
    1.52784598525614, 2.44756818236783, -1.38675872981548, 0.0950390356592834, 
    0.03399049770087, 0.892285718116909, 0.101863093208522, 1.75414660805836, 
    0.865866023581475, 1.682445068378, 0.421777625568211, 0.251536566298455, 
    -2.05962099973112, 2.21169336652383, -1.01421055570245, -1.93438938539475, 
    1.57639979431406, 0.567780066281557))
true <- as_tibble(true)
true

p6 <- ggplot(true, aes(x1, x2)) +
 geom_raster(aes(fill = risk))
p6

true您的绘图不是空白的,因为
x1
x2
和ggplot轴中的数字很小,您无法看到它们

为了在图中看到它们,我把
x1
x2
中的所有数字四舍五入到两位小数

首先,我将
true
转换为
data frame
,然后对所有数字进行四舍五入

true <-  as.data.frame(true)
number <- sapply(true, is.numeric)
true[number ] <- lapply(true[number ], round, 2)

true我试过你的代码,看到了5个矩形。代码对我来说很好,请用
dput(true)
sessionInfo()的输出编辑你的帖子。另外,一个旁注可能会比
true
更好地命名变量。这很奇怪。它确实适用于我给出的示例,但不适用于我的模拟。我给出的示例是我模拟的一个小示例。另外,我没有提到我将我的数据帧称为
true
true <-  as.data.frame(true)
number <- sapply(true, is.numeric)
true[number ] <- lapply(true[number ], round, 2)
p6 <- ggplot(true, aes(x1, x2)) +
  geom_raster(aes(fill = risk)) 
p6