我正在尝试通过函数使用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")
想知道第一组代码不起作用的原因是什么,或者如何正确使用values =~
plot_ly
组件的变量输入?
答案 0 :(得分:0)
也许是这样的?
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]]
获取值,或者你也可以转换为矩阵。