首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geom_density_ridges需要以下缺失的美学:y

geom_density_ridges需要以下缺失的美学:y
EN

Stack Overflow用户
提问于 2019-01-11 13:13:34
回答 6查看 17.2K关注 0票数 18

无论我如何尝试,我都不能使用ggridges创建一个脊线图。使用如下所示的dataframe graphing_dataframe

代码语言:javascript
复制
str(graphing_dataframe)
summary(graphing_dataframe)

> str(graphing_dataframe)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   14 obs. of  3 variables:
 $ id    : chr  "00343" "00343" "00343" "00343" ...
 $ week  : num  14 1 2 3 4 5 6 7 8 9 ...
 $ rating: num  14 4 12 8 14 19 16 16 7 8 ...
 - attr(*, "spec")=
  .. cols(
  ..   id = col_character(),
  ..   week = col_double(),
  ..   rating = col_double()
  .. )
> summary(graphing_dataframe)
      id                 week           rating     
 Length:14          Min.   : 1.00   Min.   : 4.00  
 Class :character   1st Qu.: 4.25   1st Qu.: 8.00  
 Mode  :character   Median : 7.50   Median :10.50  
                    Mean   : 7.50   Mean   :11.43  
                    3rd Qu.:10.75   3rd Qu.:15.50  
                    Max.   :14.00   Max.   :19.00 

我的数据是:

代码语言:javascript
复制
structure(list(id = c("00343", "00343", "00343", "00343", "00343", 
"00343", "00343", "00343", "00343", "00343", "00343", "00343", 
"00343", "00343"), week = c(14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
11, 12, 13), rating = c(14, 4, 12, 8, 14, 19, 16, 16, 7, 8, 9, 
18, 9, 6)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-14L), spec = structure(list(cols = list(id = structure(list(), class = c("collector_character", 
"collector")), week = structure(list(), class = c("collector_double", 
"collector")), rating = structure(list(), class = c("collector_double", 
"collector"))), default = structure(list(), class = c("collector_guess", 
"collector"))), class = "col_spec"))

我的代码是:

代码语言:javascript
复制
ggplot(graphing_dataframe, 
       aes(x = rating, y = week, fill = ..x..)
       ) +
  geom_density_ridges()

Picking joint bandwidth of 2.53
Error: geom_density_ridges requires the following missing aesthetics: y

我尝试过在每个这个问题中使用这个问题,但这也不起作用。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-01-11 15:22:09

正如@JonnyPhelps评论的那样,我的数据与脊线图不兼容(反之亦然)。

票数 4
EN

Stack Overflow用户

发布于 2019-10-23 07:45:22

似乎错误消息有点误导,根据文档,您需要为数值变量添加一个组美学:

如果将范畴变量映射到y轴,则不需要提供分组美学,但如果变量是数字的,则需要提供分组美学。

因此,将group = week添加到ggplot(aes(…))应该可以做到这一点。(我自己也有同样的问题。)

票数 17
EN

Stack Overflow用户

发布于 2019-04-25 15:35:48

在搜索这个错误信息时,这个问题似乎是最重要的,所以我想我应该加入进来:如果您切换了xy,那么您可以得到这个错误的另一个原因是:

例如,对于上面的数据(而不是使用id ),这是可行的:

代码语言:javascript
复制
ggplot(graphing_dataframe, 
        aes(x = rating, y = id)) +
  geom_density_ridges()

当这引发错误时:

代码语言:javascript
复制
ggplot(graphing_dataframe, 
        aes(x = id, y=rating)) +
  geom_density_ridges()
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54147272

复制
相关文章

相似问题

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