【问题标题】:R plotly subplot piecharts: object 'x' not found, despite being dataframe column nameR plotly subplot饼图:尽管是数据框列名,但未找到对象'x'
【发布时间】:2019-08-27 06:14:16
【问题描述】:

尝试按照在线基本教程创建饼图的子图。

数据框如下所示:

     seed aae bge pte tca
1  AUUGCA   2   4   3   1
2  CACUGG   2   0   0  10
3  UUGUUC   1   1   1   1
4  UUUGAU   1   1   1   0
5  ACUGGC   1   1   0   1
6  AAAUGC   1   1   2   0
7  AUCACA   8   5   9   0

我想要 4 个饼图(aae-tca 列),每个饼图在各自的种子序列(第 1 列)的列中显示计数。我使用的代码如下,但是我收到错误“eval(expr,data,expr_env)中的错误:找不到对象'seed'”。

library(plotly)
library(dplyr)

p <- plot_ly() %>%
  add_pie(data = count(df, aae), labels = ~seed, values = ~aae,
          name = "A. aeg", domain = list(row = 0, column = 0)) %>%
  add_pie(data = count(df, bge), labels = ~seed, values = ~bge,
          name = "B .ger", domain = list(row = 0, column = 1)) %>%
  add_pie(data = count(df, pte), labels = ~seed, values = ~pte,
          name = "P. tep", domain = list(row = 1, column = 0)) %>%
  add_pie(data = count(df, tca), labels = ~seed, values = ~tcas,
          name = "T. cas", domain = list(row = 1, column = 1))%>%
  layout(title = "Pie Charts with Subplots", showlegend = F,
         grid=list(rows=2, columns=2),
         xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
         yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

p

【问题讨论】:

  • 例如查看count(df, aae)。它不包含列seed,因此在数据中找不到它并引发错误。在每个count 中将df 替换为group_by(df, seed) - 调用它就可以了。但是,在您的示例中,没有 seed_seq 重复,因此您最好只使用 data = df

标签: r dplyr r-plotly


【解决方案1】:

您不需要在饼图中使用count()add_pie() 会为您执行此操作。 只需删除代码的data = count(df, ...)

像这样:

# yours data
df = data.frame(
  seed =c("AUUGCA" ,"CACUGG" ,"UUGUUC" ,"UUUGAU" ,"ACUGGC" ,"AAAUGC" ,"AUCACA" ),
  aae=c(2 ,2 ,1 ,1 ,1 ,1 ,8 ),
  bge=c(4, 0, 1, 1, 1,  1,  5), 
  pte =c(3 ,0 ,1 ,1 ,0 ,2 ,9 ),
  tca = c(1,10,1,0,1,0,0)
)

library(plotly)

# Make pies

df%>%
  plot_ly() %>%
  add_pie(labels = ~seed, values = ~aae,
          name = "A. aeg", domain = list(row = 0, column = 0)) %>%
  add_pie(labels = ~seed, values = ~bge,
          name = "B .ger", domain = list(row = 0, column = 1)) %>%
  add_pie(labels = ~seed, values = ~pte,
          name = "P. tep", domain = list(row = 1, column = 0)) %>%
  add_pie(labels = ~seed, values = ~tca,
          name = "T. cas", domain = list(row = 1, column = 1))%>%
  layout(title = "Pie Charts with Subplots", showlegend = F,
         grid=list(rows=2, columns=2),
         xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
         yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

这里是输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2019-12-30
    • 2019-04-29
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多