首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ggplot抛出错误` `label not found` `,而`label`显然在那里

ggplot抛出错误` `label not found` `,而`label`显然在那里
EN

Stack Overflow用户
提问于 2019-04-10 16:51:41
回答 1查看 661关注 0票数 4

我可以使用geom_text绘制以下df的标签

df <- data.frame(
  x = c(610, 426, 569, 253), 
  y = c(-226, -276, -364, -185), 
  label = c("accomplishments per week", "hours worked per week", "perceived adequacy of accomplishments", "energy level"),
  stringsAsFactors = FALSE
)

ggplot(df, aes(x, y)) + geom_text(aes(label = label))

Error in FUN(X[[i]], ...) : object 'label' not found

为什么 is that和 how how I solve it?

这是我的真实数据df1

df1 <- structure(list(type = c("var", "var", "var", "var"),
                  id = c(1,2, 4, 7), 
                  x = c(610, 426, 569, 253), y = c(-226, -276, -364, -185), 
                  label = c("accomplishments per week", "hours worked per week",  "perceived adequacy of accomplishments", "energy level"), 
                  from = c(NA_real_,NA_real_, NA_real_, NA_real_), 
                  to = c(NA_integer_, NA_integer_,NA_integer_, NA_integer_), 
                  polarity = c(NA_character_, NA_character_, NA_character_, NA_character_), 
                  group = c(1L, 1L, 1L, 1L)), .Names = c("type","id", "x", "y", "label", "from", "to", "polarity", "group"),
             row.names = 7:10, class = c("cld", "data.frame")
             )

df

   type id   x    y                                 label from to polarity group
7   var  1 610 -226              accomplishments per week   NA NA     <NA>     1
8   var  2 426 -276                 hours worked per week   NA NA     <NA>     1
9   var  4 569 -364 perceived adequacy of accomplishments   NA NA     <NA>     1
10  var  7 253 -185                          energy level   NA NA     <NA>     1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-10 16:57:35

您的df1属于clddata.frame类(请参阅上面str输出中的第二行)。看起来ggplot不喜欢对象是cld优先的。为了绕过这个问题,使用as.data.frame强制df1仅成为data.frame类。您可以使用class(df1)查看它,或者查看下面的str(df1)输出。注意"Classes“行。

> str(df1)
Classes ‘cld’ and 'data.frame': 4 obs. of  9 variables:
 $ type    : chr  "var" "var" "var" "var"
 $ id      : num  1 2 4 7
 $ x       : num  610 426 569 253
 $ y       : num  -226 -276 -364 -185
 $ label   : chr  "accomplishments per week" "hours worked per week" "perceived adequacy of accomplishments" "energy level"
 $ from    : num  NA NA NA NA
 $ to      : int  NA NA NA NA
 $ polarity: chr  NA NA NA NA
 $ group   : int  1 1 1 1

如果您将其强制转换为data.frame,它将正常工作。

ggplot(as.data.frame(df1), aes(x = x, y = y, label = label)) +
  geom_text()

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55608432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档