Я хочу, чтобы эта визуализация работала в Power BI
https://www.neo-reliability.com/post/building-an-interactive-risk-matrix-using-r/
Я могу заставить ggplot отображать (risk_p) так же хорошо, как Пока я импортирую данные, используя скрипт r, как в учебнике. Но когда я пытаюсь импортировать данные в power bi, а затем пытаюсь использовать столбцы, как при использовании любого другого визуального изображения, я получаю эту странную ошибку. значение цвета, чтобы увидеть, что происходит. Странно это работает, но я получаю этот вывод.
матрица риска
Суммирование отключено для каждой категории, но похоже, что оно выдает суммарный «Тип» с агрегированные ячейки ... одна точка графика для каждого вида (включая пробел, который никогда не встречается, поэтому он исключается, кроме как в легенде). Что мог сделать Power BI, чтобы думать, что должна быть четвертая пустая категория? Что я могу сделать для правильного построения графика?
Копия моего отредактированного кода для power bi ниже.
Спасибо !!
# The following code to create a dataframe and remove duplicated rows is always executed and acts as a preamble for your script:
# dataset <- data.frame(ID, Title, Risk, Type, Interim, Consequence, Likelihood)
# dataset <- unique(dataset)
# Paste or type your script code here:
library("ggplot2", lib.loc = .libPaths("C:/Users/Bparsons/Documents/R/win-library/3.6"))
library("plotly", lib.loc = .libPaths("C:/Users/Bparsons/Documents/R/win-library/3.6"))
library("dplyr", lib.loc = .libPaths("C:/Users/Bparsons/Documents/R/win-library/3.6"))
# Creating heatmap background for Risk Matrix
# setting the score in order to calculate the risk level
Likelihood_score <- rep(c(1,2,4,6,12),5)
Consequence_score <- rep(c(1,2,4,6,12),each=5)
Likelihood <- rep(c(1:5),5)
Consequence <- rep(c(1:5),each=5)
df <- data.frame(Likelihood,Consequence)
df <- mutate(df, risk_score = Consequence_score * Likelihood_score,
Risk = case_when(risk_score >= 0 & risk_score < 6 ~ 1,
risk_score >= 6 & risk_score < 12 ~ 2,
risk_score >= 12 & risk_score < 32 ~ 3,
risk_score >= 32 ~ 4) )
# plotting
risk_p<- ggplot(df,aes(x =Likelihood, y =Consequence, fill=Risk))+
geom_tile()+
scale_fill_gradientn(colours = c("red", "orange","#EEEE00","#008000"),guide=FALSE)+
scale_x_continuous(trans = "reverse",name= "Frequency",breaks = 0:5, expand = c(0, 0))+
scale_y_continuous(trans = "reverse",name = "Consequence",breaks = 0:5, expand = c(0, 0))+
#coord_fixed()+
theme_bw()+
geom_hline(yintercept = seq(1.5,5.5), color = "white")+
geom_vline(xintercept = seq(1.5,5.5), color = "white")+
ggtitle("5 X 5 Interactive Risk Matrix")+
theme(legend.position="bottom")+
guides(color=guide_legend(title="Selected Plants"))+
geom_jitter(data = dataset,
# position = "jitter",
inherit.aes = FALSE, width= 0.3,height = 0.3,
aes(y = Consequence,
x = Likelihood,
col = Type,
text = paste("<b>ID#:</b>",ID,"<br>",
"<b>Risk:</b>",Risk,"<br>",
"<b>Type:</b>",Type,"<br>",
"<b>Interim Action:</b>",Interim)))+
scale_color_manual(values = c("#9400D3", "#9400D3","#009fdf","#aaaaaa")
)
risk_p