【问题标题】:Plotly in R passing a variable through using a function在R中通过使用函数传递变量
【发布时间】:2018-05-20 08:41:44
【问题描述】:

我正在尝试通过一个函数使用plotly 创建一个环形图,以便我可以更改变量。

以下代码返回无图表,但也没有错误:

library(plotly)
library(dplyr)

function_ringchart<- function(dataset, labvar, summvar){
summvar_temp <- enquo(summvar)
labvar_temp <- enquo(labvar)
p<- plot_ly(data = dataset, labels = ~labvar_temp, values = ~summvar_temp , type ="pie",hole = 0.6)
p
}

function_ringchart(df, "person","msgcount")

以下代码可以正常工作并且返回正确的图表(不改变值变量):

function_ringchart<- function(dataset, labvar){
#summvar_temp <- enquo(summvar)
labvar_temp <- enquo(labvar)
p<- plot_ly(data = dataset, labels = ~labvar_temp, values = ~msgcount, type ="pie",hole = 0.6)
p
}

function_ringchart(df, "person")

想知道第一组代码不起作用的原因是什么,或者如何正确使用plot_lyvalues =~ 组件的变量输入?

【问题讨论】:

  • 这行得通吗? function_ringchart
  • 欢迎使用 stackoverflow。请提供示例数据 - 否则这会变成猜测工作,谢谢

标签: r plotly r-plotly


【解决方案1】:

也许是这样的?

function_ringchart<- function(dataset, labvar, summvar){ 
  plot_ly(data = dataset, labels = dataset[,labvar])[[1]],
              values = dataset[,summvar])[[1]], type ="pie",
              hole = 0.6) 

} 
function_ringchart(economics, labvar = "date",  summvar = "pop")

如果数据在 tibble 中,它显然不会渲染任何内容,因此您必须使用 dataset[,summvar])[[1]] 获取值,或者您也可以转换为矩阵。

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多