視覺化相關度分析 (繪圖)

輸出圖

程式碼

rm(list=ls()) sink("RE-4.log") RE.Summary <- NULL RE.NumFields <- NULL LoadData <- function(csvFile='RE.csv') { RE.Data <- read.csv(csvFile) } SummaryData <- function(RE=RE.Data) { options(digits=1) fieldNames <- colnames(RE) i = 0 for (fieldName in fieldNames) { i = i + 1 if (class(RE[, fieldName]) == 'numeric') { assign('RE.NumFields', c(RE.NumFields, i), envir = .GlobalEnv) Summary.Field <- c(summary(RE[, fieldName]), sd(RE[, fieldName])) if (is.null(RE.Summary)) { assign('RE.Summary', Summary.Field, envir = .GlobalEnv) } else { assign('RE.Summary', rbind(RE.Summary, Summary.Field), envir = .GlobalEnv) } } } i = 1 for (fieldName in fieldNames) { if (class(RE[, fieldName]) == 'numeric') { rownames(RE.Summary)[i] <- fieldName i = i + 1 } } colnames(RE.Summary)[7] <- 'StdDev.' RE.Summary } CoVarianceData <- function(RE=RE.Data) { options(digits=2) if (is.null(RE.NumFields)) { fieldNames <- colnames(RE) i = 0 for (fieldName in fieldNames) { i = i + 1 if (class(RE[, fieldName]) == 'numeric') { assign('RE.NumFields', c(RE.NumFields, i), envir = .GlobalEnv) } } } cov(RE[, RE.NumFields]) } CoRelationData <- function(RE=RE.Data) { options(digits=2) if (is.null(RE.NumFields)) { fieldNames <- colnames(RE) i = 0 for (fieldName in fieldNames) { i = i + 1 if (class(RE[, fieldName]) == 'numeric') { assign('RE.NumFields', c(RE.NumFields, i), envir = .GlobalEnv) } } } cor(RE[, RE.NumFields]) } PlotCharts <- function(RE=RE.Data) { fieldNames <- colnames(RE) if (is.null(RE.NumFields)) { i = 0 for (fieldName in fieldNames) { i = i + 1 if (class(RE[, fieldName]) == 'numeric') { assign('RE.NumFields', c(RE.NumFields, i), envir = .GlobalEnv) } } } for (fieldID in RE.NumFields) { fieldName <- fieldNames[fieldID] chartName <- paste('HIST', 'RE', fieldName, sep='-') fileName <- paste(chartName, 'png', sep='.') png(fileName, width=1024, height=768) par(mfrow=c(1, 2)) hist(RE[, fieldName], xlab=fieldName, main='\u76f4\u65b9\u5716') plot(density(RE[, fieldName]), main='\u5bc6\u5ea6\u5716') dev.off() } chartName <- paste('COR', 'RE', sep='-') fileName <- paste(chartName, 'png', sep='.') png(fileName, width=4096, height=4096) pairs(RE) dev.off() } PlotScatterChart <- function(xFieldName, yFieldName, factorField='Failure', RE=RE.Data) { Plot.Legend <- as.numeric(RE.Data[, factorField]) Plot.NumLegend <- max(Plot.Legend) Plot.Colors <- rainbow(Plot.NumLegend) Plot.Char <- seq(1, Plot.NumLegend+1, 1) chartName <- paste('XY', 'RE', xFieldName, yFieldName, sep='-') fileName <- paste(chartName, 'png', sep='.') png(fileName, width=1024, height=960) plot(RE.Data[, xFieldName], RE.Data[, yFieldName], col=Plot.Colors, pch=Plot.Legend, cex=1, main='\u6563\u5e03\u5716', xlab=xFieldName, ylab=yFieldName) legend("topright", col=Plot.Colors, pch=Plot.Char, cex=1, legend=unique(RE.Data[, factorField])) dev.off() } RE.Data <- LoadData() SummaryData(RE.Data) CoRelationData(RE.Data) CoVarianceData(RE.Data) #PlotCharts() PlotScatterChart('FactorX1', 'FactorY1') PlotScatterChart('FactorX2', 'FactorY2') sink()