Построение нескольких диаграмм в пользовательских компонентах R возможно в сценариях не-HANA благодаря использованию функции multiplot.
В пользовательских компонентах R теперь возможно построение нескольких диаграмм. Эта функция не приведет к изменениям в процедуре и в компонентах пользовательского интерфейса для создания компонента R. Тем не менее, существуют некоторые правила для написания пользовательской функции R, которая использует функцию multiplot. Эти правила перечислены ниже вместе с пользовательскими функциями R в качестве примеров для иллюстрации принципов написания:
В следующем коде R показано составление нескольких диаграмм в пользовательской функции R. Для демонстрации функции multiplot не используются алгоритмы прогнозирования в этой функции R. Чтобы добавить алгоритмы прогнозирования, следуйте инструкциям в комментариях к строкам.
myanalysisfunction <- function(mydataframe){
# Load ggplot2 library library(ggplot2)
# Set PA to multiplot mode pa.config("multiplot","true")
#######################################
# Put predictive algorithms here
#######################################
# Plot a histogram chart using qplot and assign the chart to variable my_p1
my_p1 <- qplot(mydataframe$hp, geom="histogram")
# Plot a scatterplot chart and assign the chart to variable my_p2
my_p2 <- qplot(mydataframe$wt, mydataframe$hp)
# Plot a simple linear model and assign the chart to variable my_p3
my_model <- lm(mydataframe$wt ~ mydataframe$hp)
my_p3 <- qplot(hp, wt, data = mydataframe) + geom_abline(intercept=coef(my_model)[1],
slope=coef(my_model)[2])
# plot a scatterplot chart with a linear smooth line and assign the chart to variable my_p6
my_p5 <- ggplot(mydataframe, aes(x = wt, y=mpg), .~cyl)+ geom_point()
my_p6 <- my_p5 + geom_smooth(aes(group=cyl),method="lm")
# plot a pie chart and assign the chart to variable my_p7
my_p7 <- ggplot(data=mydataframe, aes(x=factor(1), fill= factor(cyl))) + geom_bar(width=1)+
coord_polar(theta="y")
# plot a time series chart and assign it to chart variable my_p8
year <- as.numeric(unlist(strsplit("1998 1999 2000 2001 2002 2003 2004 2005 2006 2007", "\\s+")))
revenue <- as.numeric(unlist(strsplit("10 6 13 14 12 8 10 10 6 9", "\\s+")))
mydataframe2 <- data.frame(year, revenue)
my_p8 <- ggplot(mydataframe2, aes(year, revenue)) + geom_bar(stat="identity", fill="white",
colour="black") + geom_line(colour="red") + stat_smooth(se=F, size=3)
# Return all chart variables and set metadata for each chart
return(list(out=mydataframe, charts=list(list(chart=my_p1, type="bar", name="chart 1"),
list(chart=my_p2, type="scatter plot", name="chart 2"), list(chart=my_p3, type="line", name="chart 3"),
list(chart=my_p8, type="time series", name="chart 8"), list(chart=my_p7, type="pie",
name="chart 7"), list(chart=my_p6, type="line", name="chart 6"))))
}Требуется вернуть диаграммы для составления в выражении return как элементы в списке диаграмм. Выражение return является многомерным списком, который выглядит следующим образом:
return(list(…, charts=list(…, list(chart=chart_variable_1,name=”chart_name_1”, type=”chart_type_1”), list(chart=chart_variable_2,name=”chart_name_2”, type=”chart_type_2”), …), …))
Каждый элемент списка диаграмм также является списком, который содержит сведения о составляемой диаграмме, включая переменную диаграммы (элемент диаграммы), имя диаграммы (элемент имени) и тип диаграммы (элемент типа). Имя диаграммы и тип диаграммы содержат сведения, позволяющие пользователям отличить диаграммы друг от друга в окне результатов. Разные значки используются для разных типов диаграмм, имя диаграммы отображается как подсказка при наведении курсора на значок. Указывать имя диаграммы и тип диаграммы для составления нескольких диаграмм не требуется, но рекомендуется.
Сейчас в Expert Analytics поддерживаются следующие типы диаграмм:
Для других диаграмм, которые не включены в список, будет использован значок по умолчанию.
Функция multiplot не меняет существующую область построения (отдельная). Если требуется только область построения (отдельная), нет необходимости менять существующую пользовательскую функцию R.