X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=Rscripts%2Fafc_graph.R;h=defdab181b1deb50e922890e60dd74bf9d2195d6;hp=17f065e8c6779c26af37372a15ae868ac0f24cfe;hb=ea75400310e91c45b6a705119b2e33afc0933e3e;hpb=8fa853a25a9d62b1446e1bc543e5a3a4d0e03dcf diff --git a/Rscripts/afc_graph.R b/Rscripts/afc_graph.R index 17f065e..defdab1 100644 --- a/Rscripts/afc_graph.R +++ b/Rscripts/afc_graph.R @@ -16,6 +16,8 @@ do.select.nb <- %s select.nb <- %i do.select.chi <- %s select.chi <- %i +do.select.chi.classe <- %s +ptbycluster <- %i cex.txt <- %s txt.min <- %i txt.max <- %i @@ -105,19 +107,19 @@ if ( qui == 3 ) { } } - if (over) { - rn <- rownames(table.in) - rownames(table.in) <- 1:nrow(table.in) - table.in <- unique(table.in) - rn.keep <- as.numeric(rownames(table.in)) - rownames(table.in) <- rn[rn.keep] - tablechi <- tablechi[rn.keep,] - if (qui==0) { - cex.par <- cex.par[rn.keep] - } else { - cex.par <- NULL - } - } +# if (over) { +# rn <- rownames(table.in) +# rownames(table.in) <- 1:nrow(table.in) +# table.in <- unique(table.in) +# rn.keep <- as.numeric(rownames(table.in)) +# rownames(table.in) <- rn[rn.keep] +# tablechi <- tablechi[rn.keep,] +# if (qui==0) { +# cex.par <- cex.par[rn.keep] +# } else { +# cex.par <- NULL +# } +# } if (do.select.nb) { if (select.nb > nrow(table.in)) select.nb <- nrow(table.in) row.keep <- select_point_nb(tablechi, select.nb) @@ -128,6 +130,10 @@ if ( qui == 3 ) { row.keep <- select_point_chi(tablechi, select.chi) table.in <- table.in[row.keep,] tablechi <- tablechi[row.keep,] + } else if (do.select.chi.classe) { + row.keep <- select.chi.classe(tablechi, ptbycluster) + table.in <- table.in[row.keep,] + tablechi <- tablechi[row.keep,] } else { row.keep <- 1:nrow(table.in) } @@ -147,11 +153,20 @@ if ( qui == 3 ) { } } + if (typegraph == 0) { open_file_graph(fileout, width = width, height = height) parcex <- taillecar/10 par(cex = parcex) + if (over) { + table.in <- table.in[order(cex.par, decreasing = TRUE),] + classes <- classes[order(cex.par, decreasing = TRUE)] + cex.par <- cex.par[order(cex.par, decreasing = TRUE)] + table.in <- stopoverlap(table.in, cex.par=cex.par) + classes <- classes[table.in[,4]] + cex.par <- cex.par[table.in[,4]] + } make_afc_graph(table.in, classes, clnb, xlab, ylab, cex.txt = cex.par) } else { @@ -184,8 +199,10 @@ if (typegraph == 0) { rnames } library(rgl) - rn <- vire.nonascii(rownames(table.in)) + #rn <- vire.nonascii(rownames(table.in)) + rn <- rownames(table.in) rgl.open() + par3d(cex=0.7) #par3d(windowRect = c(100,100,600,600)) rgl.bg(col = c('white', "#99bb99"), front = "lines", box=FALSE, sphere = TRUE) rgl.lines(c(rx), c(0, 0), c(0, 0), col = "#000000") @@ -195,19 +212,21 @@ if (typegraph == 0) { text3d(0,ry[2]+1,0, ylab) text3d(0,0,rz[2]+1, zlab) rain = rainbow(clnb) - colors = rain[classes] - text3d(table.in[,1], table.in[,2], table.in[,3], rn, col='black') - if (tchi) { + if (tchi) { maxchi <- norm.vec(maxchi, tchi.min/100, tchi.max/100) } else if (!is.null(cex.par)) { maxchi <- norm.vec(cex.par, txt.min/100, txt.max/100) } else { maxchi <- 0.1 } + colors = rain[classes] + text3d(table.in[,1], table.in[,2], table.in[,3], rn, col= colors , cex = cex.par) for (i in 1:clnb) { text3d(rx[2],(ry[2]+(0.2*i)),0,paste('classe',i),col=rain[i]) } - rgl.spheres(table.in, col = colors, radius = maxchi, alpha = alpha) + #if (tchi) { + # rgl.spheres(table.in, col = colors, radius = maxchi, alpha = alpha) + #} if (dofilm) { require(tcltk)