首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Plotly [R]中子设置数据的按钮出现问题

Plotly [R]中子设置数据的按钮出现问题
EN

Stack Overflow用户
提问于 2021-08-09 20:05:17
回答 1查看 29关注 0票数 0

我正在尝试为我的绘图图形添加一个按钮,下面是一些reprex数据:

代码语言:javascript
复制
reprex <- tibble::tribble(            ~COURSE_DEPARTMENT,                    ~MAJOR_DESC,             ~STUDENT_CAMPUS_DESC, ~credit_hours,
                                    "Applied Sciences and Economics",                   "Accounting",                           "CAPA",          1422,
                                    "Applied Sciences and Economics",                   "Accounting",           "Inland Empire Campus",            24,
                                    "Applied Sciences and Economics",                   "Accounting",             "Kern County Campus",           192,
                                    "Applied Sciences and Economics",                   "Accounting",                    "Main Campus",          8402,
                                    "Applied Sciences and Economics",                   "Accounting",           "Orange County Campus",            96,
                                    "Applied Sciences and Economics",                   "Accounting",     "San Fernando Valley Campus",           620,
                                    "Applied Sciences and Economics",                 "Anthropology",                           "CAPA",             4,
                                    "Applied Sciences and Economics",                 "Anthropology",                    "Main Campus",            24,
                                    "Applied Sciences and Economics",                  "Art History",                    "Main Campus",             4,
                                    "Applied Sciences and Economics",            "Athletic Training",                    "Main Campus",             4,
                                    "Applied Sciences and Economics",           "Behavioral Science",                           "CAPA",            28,
                                    "Applied Sciences and Economics",           "Behavioral Science",                    "Main Campus",             4,
                                    "Applied Sciences and Economics",                      "Biology",                           "CAPA",             8,
                                    "Applied Sciences and Economics",                      "Biology",                    "Main Campus",           152,
                                    "Applied Sciences and Economics",                 "Broadcasting",                           "CAPA",             8,
                                    "Applied Sciences and Economics",                 "Broadcasting",                    "Main Campus",            72,
                                    "Applied Sciences and Economics",      "Business Administration",          "*Central Coast Campus",            12,
                                    "Applied Sciences and Economics",      "Business Administration",                           "CAPA",          2666,
                                    "Applied Sciences and Economics",      "Business Administration", "High Desert Victorville Campus",           394,
                                    "Applied Sciences and Economics",      "Business Administration",           "Inland Empire Campus",          1688,
                                    "Applied Sciences and Economics",      "Business Administration",             "Kern County Campus",           352,
                                    "Applied Sciences and Economics",      "Business Administration",                    "Main Campus",         32550,
                                    "Applied Sciences and Economics",      "Business Administration",  "Naval Base-Ventura  (Pt Mugu)",          1463,
                                    "Applied Sciences and Economics",      "Business Administration",           "Orange County Campus",          1175,
                                    "Applied Sciences and Economics",      "Business Administration",     "San Fernando Valley Campus",          2381,
                                    "Applied Sciences and Economics",      "Business Administration",                    "ULV On-Line",          3899,
                                    "Applied Sciences and Economics",      "Business Administration",              "Vandenberg Center",           696,
                                    "Applied Sciences and Economics",      "Business Administration",          "Ventura County Campus",           397,
                                    "Applied Sciences and Economics",                    "Chemistry",                           "CAPA",             8,
                                    "Applied Sciences and Economics",                    "Chemistry",                    "Main Campus",            32,
                                    "Applied Sciences and Economics",            "Child Development",                           "CAPA",            36,
                                    "Applied Sciences and Economics",            "Child Development",           "Inland Empire Campus",             8,
                                    "Applied Sciences and Economics",            "Child Development",                    "Main Campus",            46,
                                    "Applied Sciences and Economics",            "Child Development",           "Orange County Campus",            12,
                                    "Applied Sciences and Economics", "Child Development-Integrated",                    "Main Campus",             8,
                                    "Applied Sciences and Economics",               "Communications",                           "CAPA",            20,
                                    "Applied Sciences and Economics",               "Communications",                    "Main Campus",           128,
                                    "Applied Sciences and Economics",  "Computer Sci & Computer Eng",                           "CAPA",            58,
                                    "Applied Sciences and Economics",  "Computer Sci & Computer Eng",                    "Main Campus",           358,
                                    "Applied Sciences and Economics",             "Computer Science",                           "CAPA",             8
                                    )

因此,基本上我想创建一个在学生校园列之外工作的按钮,它让我可以选择将所有内容聚合到整个校园中,或者按学生所在的校园进行分离。下面是我所拥有的代码:

代码语言:javascript
复制
fig_test<- plot_ly(reprex,
                         x= ~COURSE_DEPARTMENT,
                         y = ~MAJOR_DESC,
                         text = ~credit_hours,
                         size = ~credit_hours,
                         type= 'scattergl',
                         mode = 'markers',
                         sizes = c(10,100),
                         color = ~MAJOR_DESC,
                         marker = list(opacity = 0.5, sizemode='diameter'))

fig_test <-fig_test %>% layout(title = 'Course Department vs Major by Billing Hours',
                                           xaxis = list(title='Course Department', showgrid=FALSE),
                                           yaxis = list(title = 'Student Major', showgrid = FALSE),
                                           showlegend = TRUE)

它给出了这个图(来自reprex数据):

我希望做的是得到一个下拉菜单(或者一个按钮,甚至是一个滑块),它可以让我根据学生的具体校园进行聚合和分解。我试着添加按钮,但它总是给我错误,而且我不完全理解如何正确地构建它们。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-08-09 22:36:33

希望这对将来的人有所帮助,但我使用plotly库中的转换回答了我自己的问题:

代码语言:javascript
复制
fig_test<- plot_ly(reprex,
                         x= ~COURSE_DEPARTMENT,
                         y = ~MAJOR_DESC,
                         text = ~credit_hours,
                         size = ~credit_hours,
                         type= 'scattergl',
                         mode = 'markers',
                         sizes = c(10,100),
                         color = ~MAJOR_DESC,
                         marker = list(opacity = 0.5, sizemode='diameter'),
                   transforms = list(
                     list(
                       type = 'filter',
                       target = ~STUDENT_CAMPUS_DESC,
                       operation = '=',
                       value = unique(reprex$STUDENT_CAMPUS_DESC)[1]
                     )
                   ))

fig_test <-fig_test %>% 
  layout(title = 'Course Department vs Major by Billing Hours',
                                           xaxis = list(title='Course Department', showgrid=FALSE),
                                           yaxis = list(title = 'Student Major', showgrid = FALSE),
                                           showlegend = TRUE,
         updatemenus = list(
           list(
             type = 'dropdown',
             active = 0,
             buttons = list(
               list(method = "restyle",
                    args = list("transforms[0].value", unique(reprex$STUDENT_CAMPUS_DESC)[1]),
                    label = unique(reprex$STUDENT_CAMPUS_DESC)[1]),
               list(method = "restyle",
                    args = list("transforms[0].value", unique(reprex$STUDENT_CAMPUS_DESC)[2]),
                    label = unique(reprex$STUDENT_CAMPUS_DESC)[2]),
               list(method = "restyle",
                    args = list("transforms[0].value", unique(reprex$STUDENT_CAMPUS_DESC)[3]),
                    label = unique(reprex$STUDENT_CAMPUS_DESC)[3])
             )
           )
         )
  )
fig_test

因此,从本质上讲,代码前半部分中的transforms参数允许您从自定义目标向量调用,在本例中为校园。我能轻易看到的唯一问题是,你必须为你想要插入的每个“按钮”写一个新的行。另外,我不确定是否可以用一个4循环来解决这个问题,因为这对我来说似乎有点太暴力了。

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

https://stackoverflow.com/questions/68717992

复制
相关文章

相似问题

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