首页 > 解决方案 > powerBI中的自定义R视觉超时

问题描述

我正在尝试在 PowerBI 中运行 ar 可视化。它在 R 中运行良好,但由于某种原因,它永远不会在 PowerBI 中完成加载(没有错误消息,只是 5 分钟后的超时屏幕)。经过一些试验,我注意到如果我从创建和保存小部件部分删除一个绘图覆盖,它将加载正常。不管是哪一个。

我是 R 和 powerBi 的新手,因此非常感谢任何有关解决方法的建议。

source('./r_files/flatten_HTML.r')

############### Library Declarations ###############
libraryRequireInstall("ggplot2");
libraryRequireInstall("plotly");
####################################################

################### Actual code ####################
# plot histogram of risk density using monte carlo output
x = Values[,1]; #grab first column of dataframe as dataframe

# create CDF function and overlay onto histogram
cdf = ecdf(x);

# calculate mean cordinates to draw a mean line for selected data
meancordinates = function(xdata) {
    v = sum(xdata)
    meanxcord = v/length(xdata)
    meancord = list(meanxcord = meanxcord, meanycord = cdf(meanxcord))
    return(meancord)
};
mean = meancordinates(x);

# calculate median cordinates to draw a median line for selected data
mediancordinates = function(xdata) { 
    medianxcord = median(xdata)
    mediancord = list(medianxcord = medianxcord, medianycord = cdf(medianxcord))
    return(mediancord)
};

median = mediancordinates(x)

# calculate the 80% cordinates to draw a 80% line for selected data
eightycordinates = function(xdata) { 
    eightyxcord = x[which(abs(cdf(xdata)-0.80) == min(abs(cdf(xdata)-0.80)))]
    eightycord = list(eightyxcord = eightyxcord, eightyycord = cdf(eightyxcord))
    return(eightycord);
}

eighty = eightycordinates(x);

####################################################

############# Create and save widget ###############
p = plot_ly(x = x, type = "histogram", histnorm = "probability density", name = "Histogram")
p = p %>% add_segments(
    x = median$medianxcord, xend = median$medianxcord, 
    y = 0, yend = median$medianycord,
    name = "Median") 
p = p %>% add_segments(
    x = eighty$eightyxcord, xend = eighty$eightyxcord, 
    y = 0, yend = eighty$eightyycord,
    name = "80%") 
p = p %>% add_segments(
    x = mean$meanxcord, xend = mean$meanxcord, 
    y = 0, yend = mean$meanycord,
    name = "Mean") 
p = p %>% add_lines(x = x, y = cdf(x), name = "CDF");
internalSaveWidget(p, 'out.html');
####################################################

标签: rpowerbiplotly

解决方案


推荐阅读