#r #graph
Не в первой сталкиваюсь с такой проблемой, но решения пока не нашел.
Я строю четыре графика отображающих процентное соотношение значений четырех переменных.
library(plotrix)
x1 <- c(0.09,0.187,0.269,0.441,0.013)
x2 <- c(0.207,0.262,0.259,0.242,0.03)
x3 <- c(0.147,0.237,0.249,0.339,0.027)
x4 <- c(0.052,0.11,0.242,0.581,0.015)
df <- cbind(x1, x2, x3, x4)
df1 <- data.frame(df)
df1 <- sqrt(df1) #Беру корень по значениям, чтобы сектора выглядели более наглядно.
draw_rp <- function(dataf){
for (i in 1:length(dataf)){
xnew1 <- c(0.1, 0.1, 0.1, 0.1, 0.1, dataf[[i]])
colors <- c(rep('white', nrow(dataf)), rainbow(nrow(dataf)))
radial.pie(xnew1, show.grid = F, clockwise = T, sector.colors = colors)
}
}
par(mfrow=c(2, 2))
draw_rp(df1)
Если посмотреть на данные, можно увидеть, несоответствие размеров между одинаковыми
секторами. Например, в третьей строке данные практически одинаковые, но третий сектор
отображающий эти значения на всех графиках сильно отличается.
df1
# x1 x2 x3 x4
#1 0.3000000 0.4549725 0.3834058 0.2280351
#2 0.4324350 0.5118594 0.4868265 0.3316625
#3 0.5186521 0.5089204 0.4989990 0.4919350
#4 0.6640783 0.4919350 0.5822371 0.7622336
#5 0.1140175 0.1732051 0.1643168 0.1224745
Один из выходов это экспортировать графики в картинки. Оставить как есть график,
у которого самое большое значение и пропорционально размерам его секторов уменьшать
все остальные графики. В этом случае 4й график (0.7622336) оставить как есть, а картинки
остальных подгонять под него.
Каким образом можно автоматизировать процесс подгонки, чтобы на выходе я получал
графики с правильными пропорциями?
Ответы
Ответ 1
Попробуй добавить в белый сектор max значение из таблицы. ( мне кажется получается то что ты хочешь) draw_rp <- function(dataf){ for (i in 1:length(dataf)){ xnew1 <- c(max(dataf), 0.1, 0.1, 0.1, 0.1, dataf[[i]]) colors <- c(rep('white', nrow(dataf)), rainbow(nrow(dataf))) radial.pie(xnew1, show.grid = F, clockwise = T, sector.colors = colors) } }
Комментариев нет:
Отправить комментарий