X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=Rscripts%2Fafc_graph.R;h=e3dce9277fd3dcadd19d33595932dc4b753cd8cd;hp=ffca92ade3a1414086d3cd145ac2d854354ee4fa;hb=335b23ebd11edc39118c6c06deb930bd4a9cf0a9;hpb=7f5e0ba6ece181a04d872a7b6eeb2f13b33aa455 diff --git a/Rscripts/afc_graph.R b/Rscripts/afc_graph.R index ffca92a..e3dce92 100644 --- a/Rscripts/afc_graph.R +++ b/Rscripts/afc_graph.R @@ -1,10 +1,10 @@ #Author: Pierre Ratinaud -#Copyright (c) 20010 Pierre Ratinaud +#Copyright (c) 20010-2013 Pierre Ratinaud #Lisense: GNU/GPL #fichier genere par IRaMuTeq -source('%s') +source('%s', encoding = 'utf8') typegraph <- %i what <- %i x <- %i @@ -31,6 +31,7 @@ tchi <- %s tchi.min <- %i tchi.max <- %i dirout <- '%s' +do.svg <- %s xminmax <- NULL yminmax <- NULL @@ -50,6 +51,7 @@ if ( qui == 3 ) { if ( what == 0 ) table.in <- afc$colcoord if ( what == 1 ) table.in <- afc$colcrl rownames(table.in) <- afc$colnames + eff <- afc$colmass if (typegraph == 0) { table.in<-table.in[,c(x,y)] } else { @@ -75,21 +77,27 @@ if ( qui == 3 ) { ry <- range(table.in[,2], na.rm = TRUE) rz <- range(table.in[,3], na.rm = TRUE) } + if (exists('afctable')) { + eff <- rowSums(afctable) + } else { + eff <- afctable$rowmass + } + if (!is.null(debsup)) { if ( qui == 0 ) { table.in <- table.in[1:(debsup-1),] tablechi <- tablechi[1:(debsup-1),] - cex.par <- afc$rowmass[1:(debsup-1)] + cex.par <- eff[1:(debsup-1)] } if ( qui == 1 ) { table.in <- table.in[debsup:(debet-1),] tablechi <- tablechi[debsup:(debet-1),] - #cex.par <- afc$rowmass[debsup:(debet-1)] + cex.par <- eff[debsup:(debet-1)] } if ( qui == 2 ) { table.in <- table.in[debet:nrow(table.in),] tablechi <- tablechi[debet:nrow(tablechi),] - #cex.par <- afc$rowmass[debet:nrow(tablechi)] + cex.par <- eff[debet:nrow(afctable)] } } @@ -98,14 +106,14 @@ if ( qui == 3 ) { if (!is.null(debet)) { table.in <- table.in[1:(debet-1),] tablechi <- tablechi[1:(debet-1),] - cex.par <- afc$rowmass[1:(debet-1)] + cex.par <- eff[1:(debet-1)] } else { - cex.par <- afc$rowmass + cex.par <- eff } } else { table.in <- table.in[debet:nrow(table.in),] tablechi <- tablechi[debet:nrow(tablechi),] - #cex.par <- afc$rowmass[debet:nrow(tablechi)] + cex.par <- eff[debet:nrow(afctable)] } } @@ -131,7 +139,11 @@ if ( qui == 3 ) { infp <- which(is.infinite(maxchi) & maxchi > 0) if (length(infp)) { maxchi[infp] <- NA - valmax <- max(maxchi, na.rm = TRUE) + if (!length(infp) == length(maxchi)) { + valmax <- max(maxchi, na.rm = TRUE) + } else { + valmax <- 8 + } maxchi[infp] <- valmax + 2 } if (cex.txt) { @@ -156,7 +168,7 @@ if (is.null(xminmax)) { if (typegraph == 0) { - open_file_graph(fileout, width = width, height = height) + open_file_graph(fileout, width = width, height = height, svg = do.svg) parcex <- taillecar/10 par(cex = parcex) if (over) { @@ -170,48 +182,24 @@ if (typegraph == 0) { make_afc_graph(table.in, classes, clnb, xlab, ylab, cex.txt = cex.par, xminmax = xminmax, yminmax = yminmax) } else { - - vire.nonascii <- function(rnames) { - print('vire non ascii') - couple <- list(c('é','e'), - c('è','e'), - c('ê','e'), - c('ë','e'), - c('î','i'), - c('ï','i'), - c('ì','i'), - c('à','a'), - c('â','a'), - c('ä','a'), - c('á','a'), - c('ù','u'), - c('û','u'), - c('ü','u'), - c('ç','c'), - c('ò','o'), - c('ô','o'), - c('ö','o'), - c('ñ','n') - ) - for (c in couple) { - rnames<-gsub(c[1],c[2], rnames) - } - rnames - } library(rgl) - #rn <- vire.nonascii(rownames(table.in)) - rn <- rownames(table.in) - rgl.open() + rn <- vire.nonascii(rownames(table.in)) + rain = rainbow(clnb) + colors = rain[classes] + #rn <- rownames(table.in) + #rgl.open() + par3d('userMatrix' = matrix(c(1,0,0,0, 0,1,0,0,0,0,1,0,0,0,0,1), ncol=4, nrow = 4)) + text3d(table.in[,1], table.in[,2], table.in[,3], rn, col = colors , cex = cex.par) + rgl.bg(col = c('white', "#99bb99"), front = "lines", box=FALSE, sphere = TRUE) 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") rgl.lines(c(0,0),c(ry),c(0,0),col = "#000000") rgl.lines(c(0,0),c(0,0),c(rz),col = "#000000") text3d(rx[2]+1,0,0, xlab) text3d(0,ry[2]+1,0, ylab) text3d(0,0,rz[2]+1, zlab) - rain = rainbow(clnb) + if (tchi) { maxchi <- norm.vec(maxchi, tchi.min/100, tchi.max/100) } else if (!is.null(cex.par)) { @@ -219,8 +207,8 @@ if (typegraph == 0) { } 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]) }