Skip to content

Commit 75a4286

Browse files
authored
Added new R Scripts
1 parent 226adcc commit 75a4286

3 files changed

Lines changed: 378 additions & 0 deletions

File tree

analysis/RQ0_analysis.R

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
library(circlize)
2+
library(reshape2)
3+
library(ggplot2)
4+
library(sm)
5+
library(vioplot)
6+
library(raster)
7+
library(reshape2)
8+
library(scales)
9+
10+
11+
# Counting All Performance issues.
12+
print(paste0("1. Counting All Performance issues"))
13+
14+
inputall_pissues <- read.csv("./results/all_identified_issues.csv")
15+
count_draw <- length(which(inputall_pissues$ISSUE_TYPE == "DrawAllocation"))
16+
count_rec <- length(which(inputall_pissues$ISSUE_TYPE == "Recycle"))
17+
count_vholder <- length(which(inputall_pissues$ISSUE_TYPE == "ViewHolder"))
18+
count_hleak <- length(which(inputall_pissues$ISSUE_TYPE == "HandlerLeak"))
19+
count_sparse <- length(which(inputall_pissues$ISSUE_TYPE == "UseSparseArrays"))
20+
count_usevalue <- length(which(inputall_pissues$ISSUE_TYPE == "UseValueOf"))
21+
count_fmath <- length(which(inputall_pissues$ISSUE_TYPE == "FloatMath"))
22+
count_vtag <- length(which(inputall_pissues$ISSUE_TYPE == "ViewTag"))
23+
count_wlock <- length(which(inputall_pissues$ISSUE_TYPE == "Wakelock"))
24+
pdf(paste("./plots/", "countAllPerfIssues_RQ0", ".pdf", sep=""), width=11)
25+
par(mgp=c(2,1,0),mar=c(12,12,5,5)+0.1)
26+
maincount=c(count_draw,count_fmath,count_hleak,count_rec,count_sparse,count_usevalue,count_vholder,count_vtag,count_wlock)
27+
issue_name <- barplot(maincount, col= "#B2BEB5", ylim = c( 0 , 600 ), names.arg=c("DrawAllocation","FloatMath","HandlerLeak","Recycle","UseSparseArrays","UseValueOf","ViewHolder","ViewTag","Wakelock"), las=2, cex.axis = 1.3, cex.names=1.3)
28+
mtext("Days", side=2, line=4, cex = 1.8)
29+
mtext("Issue Types", side=1, line=10.4, cex = 1.8)
30+
text(x = issue_name, y = maincount, label = maincount, pos = 3, cex = 1, col = "black", cex.axis = 1.3)
31+
dev.off()
32+
33+
34+
35+
# Violin Plot for number of performance issues per app.
36+
print(paste0("3. Violin Plot For Number Of Performance Issues Per App."))
37+
38+
violin_input <- read.csv("./results/frequency_identiified-issues.csv")
39+
d <- melt(violin_input + 0.0001)
40+
write.csv(d, file = "./results/meltfile.csv")
41+
par(las=2,bty="l")
42+
violin_melt <- read.csv("./results/meltfile.csv")
43+
#myPlot <- ggplot(inputfile, aes(inputfile$ISSUE_TYPE, inputfile$issuenum)) +
44+
myPlot <- ggplot(violin_melt, aes(violin_melt$variable, violin_melt$value)) +
45+
#scale_y_continuous(breaks = c(0.000001,0.00001,0.0001,0.001,0.01,0.1,1,10,100,1000), trans = "log10") +
46+
#scale_y_log10() +
47+
scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
48+
labels = trans_format("log10", math_format(10^.x))) +
49+
geom_violin(trim = FALSE, fill="#B2BEB5")+
50+
labs(x="Issue Types", y = "Days")+
51+
geom_boxplot(width=0.05)+
52+
theme_classic() + theme(axis.text=element_text(size=12), axis.title=element_text(size=16,face="bold"))
53+
pdf(paste("./plots/", "violinplotAllPIssues_RQ0", ".pdf", sep=""), width=11)
54+
print(myPlot)
55+
dev.off()
56+
57+
58+

analysis/RQ1_analysis.R

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
library(circlize)
2+
library(reshape2)
3+
library(ggplot2)
4+
library(sm)
5+
library(vioplot)
6+
library(raster)
7+
library(reshape2)
8+
library(scales)
9+
10+
# All Performance issues and LOC plots.
11+
print(paste0("1. All Performance issues and LOC plots"))
12+
13+
pcountfile <- read.csv("./results/PCount.csv")
14+
inputfile <- "./results/inputreponame.csv"
15+
inputfile_read <- file(inputfile, open = "r")
16+
while (length(oneLine <- readLines(inputfile_read, n = 1, warn = FALSE)) > 0)
17+
{
18+
print(paste0("Repo Name: ", oneLine))
19+
data5 <- subset(pcountfile, pcountfile$RepoName == oneLine)
20+
tme <- data5$LifeTime/86400
21+
tot <- data5$TotalIssue
22+
nkloc <- data5$LOC
23+
pdf(paste("./plots/P_LOC_Plots_RQ1/", oneLine, ".pdf", sep=""), width=11)
24+
par(mar=c(8, 8, 5, 5), xpd=TRUE)
25+
y <- list(nkloc, tot)
26+
plot(tme, y[[1]], xlim=c(0,2500), ylim=c(0,max(nkloc)), xlab = "",ylab = "", col = "red", las=1, type="n", cex.axis = 1.5)
27+
lines(tme, y[[1]], col = "red")
28+
#text(70, 14300, labels='INJREM', col='brown', cex = 1.5, lwd=3)
29+
#arrows(5,13970, 274, 10500, length=0.1, lwd=3)
30+
#text(1600, 1600, labels='STICK', col='brown', cex = 1.5, lwd=3)
31+
#arrows(1600, 2000, 910, 13880, length=0.1, lwd=3, col = "pink")
32+
#arrows(1600, 2000, 870, 6900, length=0.1, lwd=3, col = "yellow")
33+
#nanoConverter
34+
#text(900, 150, labels='IRF', col='brown', cex = 1.5, lwd=3)
35+
#arrows(900, 250, 250, 900, length=0.1, lwd=3, col = "pink")
36+
#arrows(900, 250, 265, 1060, length=0.1, lwd=3, col = "yellow")
37+
#aGrep
38+
#text(500, 920, labels='IRF', col='brown', cex = 1.5, lwd=3)
39+
#arrows(500, 1000, 108, 2200, length=0.1, lwd=3)
40+
par(new = TRUE)
41+
plot(tme, y[[2]], xlab = "", ylab = "", xlim=c(0,2500), ylim = c(0,max(tot)), col = "blue", axes=FALSE, type="n")
42+
axis(side = 4, las = 1, cex.axis = 1.5)
43+
lines(tme, y[[2]], col = "blue")
44+
mtext("Days", side=1, line=3.7, cex = 1.8)
45+
mtext("#performance issues", side=4, line=3.7, cex = 1.8, col = "blue")
46+
mtext("Lines of code", side=2, line=4.7, cex = 1.8, col = "red")
47+
#legend("topright", inset=c(-0.11,-0.20), legend=c("LOC","P Issues"), text.col=c("red","blue"), pch=c(1,1), col=c("red","blue"), cex=1.0)
48+
dev.off()
49+
}
50+
close(inputfile_read)
51+
52+
53+
54+
# Trends Tile for co-occurence of emerging pattern.
55+
print(paste0("2. Trends Tile for co-occurence of emerging pattern."))
56+
57+
pdf(paste("./plots/", "multipleTrendsTile_RQ1", ".pdf", sep=""), width=11, height=7)
58+
m <- matrix(c(0, 96, 48, 47, 11,
59+
0, 0, 46, 24, 11,
60+
0, 0, 0, 11, 6,
61+
0, 0, 0, 0, 3, 0, 0, 0, 0, 0),
62+
byrow = TRUE,
63+
nrow = 5, ncol = 5)
64+
trends <- c("STICK", "REF", "BEG", "IRF", "INJREM", "GRAD")
65+
dimnames(m) <- list(have = trends, prefer = trends)
66+
print(m)
67+
tableau.m <- melt(m)
68+
print(tableau.m)
69+
ttile <- ggplot(tableau.m, aes(have, prefer, fill=value)) + geom_tile() + geom_tile(colour="white",size=0.25) + scale_fill_gradientn(colours = c("#fefefe","#e6f598", "#fee08b","#fdae61","#d53e4f"), name="") + theme(axis.text.x = element_text(angle = 0)) + labs(x = "Patterns", y = "Patterns") + scale_x_discrete(position = "top") + scale_y_discrete(limits = rev(trends)) +theme(axis.text=element_text(size=13), axis.title=element_text(size=16,face="bold"), legend.text=element_text(size=14), legend.key.height=grid::unit(0.8,"cm"))
70+
plot(ttile)
71+
dev.off()
72+
73+
#m <- matrix(c(0, 44, 28, 18, 31, 11,
74+
# 44, 0, 46, 64, 24, 11,
75+
# 28, 46, 0, 23, 11, 6,
76+
# 18, 64, 23, 0, 25, 0, 31, 24, 11, 25, 0, 3, 11, 11, 6, 0, 3, 0),
77+
# byrow = TRUE,
78+
# nrow = 6, ncol = 6)
79+
80+
#CramerV value
81+
82+
m <- matrix(c(0, 96, 48, 47, 11,
83+
96, 0, 46, 24, 11,
84+
48, 46, 0, 11, 6,
85+
47, 24, 11, 0, 3, 11, 11, 6, 3, 0),
86+
byrow = TRUE,
87+
nrow = 5, ncol = 5)
88+
trends <- c("STICK", "REF", "BEG", "INJREM", "GRAD")
89+
dimnames(m) <- list(have = trends, prefer = trends)
90+
assocstats(m)
91+
92+
93+
94+
# Emerging Patterns
95+
print(paste0("2. Emerging Patterns"))
96+
97+
emerg_vector=c(209,124,111,69,41)
98+
pdf(paste("./plots/", "emergingTrendsCount_RQ0", ".pdf", sep=""), width=11)
99+
par(mgp=c(2,1,0),mar=c(12,12,5,5)+0.1)
100+
xx1 <- barplot(emerg_vector, col = "#B2BEB5", ylim = c( 0 , 250 ), names.arg=c("STICK","REF","BEG","INJREM","GRAD"), las=2, cex.axis = 1.3, cex.names=1.3)
101+
mtext("Frequency", side=2, line=4, cex = 1.8)
102+
mtext("Emerging Trend Categories", side=1, line=6, cex = 1.8)
103+
text(x = xx1, y = emerg_vector, label = emerg_vector, pos = 3, cex = 1, col = "black", cex.axis = 1.3)
104+
dev.off()

analysis/RQ3_analysis.R

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
library(ggplot2)
2+
library(sm)
3+
library(vioplot)
4+
library(scales)
5+
library(survival)
6+
library(MASS)
7+
library(fitdistrplus)
8+
9+
# Violin plot using ggplot2
10+
11+
input_rmd_issues <- read.csv("./results/data_for_RQ3.csv")
12+
Issues=input_rmd_issues$ISSUE_TYPE
13+
NoOfDays=input_rmd_issues$ISSUE_SURVIVED_TIME/86400
14+
par(las=2,bty="l")
15+
myPlot <- ggplot(input_rmd_issues, aes(Issues, NoOfDays)) +
16+
geom_violin(fill="#B2BEB5")+
17+
labs(x="Issue Types", y = "Days")+
18+
geom_boxplot(width=0.1)+
19+
theme_classic() + theme(axis.text=element_text(size=12), axis.title=element_text(size=16,face="bold"))
20+
pdf(paste("./plots/", "violinplotSurvivalTime_RQ3", ".pdf", sep=""), width=11)
21+
print(myPlot)
22+
dev.off()
23+
24+
install.packages("raster")
25+
library(raster)
26+
27+
x <- c("DrawAllocation","FloatMath","HandlerLeak","Recycle","UseSparseArrays","UseValueOf","ViewHolder")
28+
for (i in 1:length(x))
29+
{
30+
details <- input_rmd_issues$ISSUE_SURVIVED_TIME[input_rmd_issues$ISSUE_TYPE == x[i]] / 86400
31+
print(paste("Statistic for issue type", x[i]))
32+
Minn <- min(details)
33+
Maxx <- max(details)
34+
Mediann <- median(details)
35+
Meann <- mean(details)
36+
SDD <- sd(details)
37+
CVV <- cv(details)
38+
print(paste("Minimum is", Minn))
39+
print(paste("Maximum is", Maxx))
40+
print(paste("Median is", Mediann))
41+
print(paste("Mean is", Meann))
42+
print(paste("Standard Deviation is", SDD))
43+
print(paste("Coefficient of variant is", CVV))
44+
}
45+
46+
47+
# box plot for Survival Time
48+
49+
input_file <- read.csv("./data_for_RQ3.csv")
50+
Issues <- input_file$ISSUE_TYPE
51+
Days <- input_file$ISSUE_SURVIVED_TIME/86400
52+
par(las=2,bty="l")
53+
boxplot(Days~Issues, data=input_file)
54+
toPlot <- boxplot(Days~Issues, data=input_file)
55+
toPlot$out <- NULL
56+
toPlot$group <- NULL
57+
bxp(toPlot)
58+
pdf(paste("./", "boxplotSurvivalTime_RQ3", ".pdf", sep=""), width=11)
59+
dev.off()
60+
61+
62+
63+
64+
65+
# KS Test For All Fitting Distribution
66+
67+
input_rmd_issues <- read.csv('./results/data_for_RQ3.csv')
68+
issues <- list("FloatMath", "UseSparseArrays", "UseValueOf", "HandlerLeak", "ViewHolder", "Recycle", "DrawAllocation")
69+
for (i in 1:length(issues))
70+
{
71+
print(paste0("Name of Performance issues: ", issues[[i]]))
72+
tmstmp <- input_rmd_issues$Time[input_rmd_issues$ISSUE_TYPE == issues[[i]]] / 86400
73+
distribution <- list("norm", "exp", "weibull", "gamma", "lnorm", "cauchy")
74+
for (j in 1:length(distribution))
75+
{
76+
print(paste0("Name of Distribution: ", distribution[[j]]))
77+
tit_ecdf <- paste(issues[[i]], distribution[[j]], "ECDF-Plot", sep = "-")
78+
tit_all <- paste(issues[[i]], distribution[[j]], "All-Plots", sep = "-")
79+
#pdf(paste("C:/Users/Teerath Das/Desktop/written/newpdfs/hags/", tit, ".pdf", sep=""), width=11, height=7)
80+
#png(paste('C:/Users/Teerath Das/Desktop/written/newpdfs/hags/', tit_all, ".png", sep=""), width=500, height=500)
81+
if (distribution[j] == "norm")
82+
{
83+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle",lower=c(0, 0))
84+
fum <- ks.test(tmstmp, "pnorm", fumle$estimate["mean"], fumle$estimate["sd"])
85+
print(fum)
86+
}
87+
88+
if (distribution[j] == "exp")
89+
{
90+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle")
91+
fum <- ks.test(tmstmp, "pexp", fumle$estimate["rate"])
92+
print(fum)
93+
}
94+
95+
if (distribution[j] == "lnorm")
96+
{
97+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle")
98+
fum <- ks.test(tmstmp, "plnorm", fumle$estimate["meanlog"], fumle$estimate["sdlog"])
99+
print(fum)
100+
}
101+
102+
if (distribution[j] == "cauchy")
103+
{
104+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle",lower=c(0, 0))
105+
fum <- ks.test(tmstmp, "pcauchy", fumle$estimate["location"], fumle$estimate["scale"])
106+
print(fum)
107+
}
108+
109+
if (distribution[j] == "gamma")
110+
{
111+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle",lower=c(0, 0))
112+
fum <- ks.test(tmstmp, "pgamma", fumle$estimate["shape"], fumle$estimate["rate"])
113+
print(fum)
114+
}
115+
116+
if (distribution[j] == "weibull")
117+
{
118+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle",lower=c(0, 0))
119+
fum <- ks.test(tmstmp, "pweibull", fumle$estimate["shape"], fumle$estimate["scale"])
120+
print(fum)
121+
122+
}
123+
}
124+
}
125+
126+
# Dunn's post-hoc analysis for comparing duration distributions
127+
128+
install.packages("dunn.test")
129+
library(dunn.test)
130+
data2 <- read.csv('./results/data_for_RQ3.csv')
131+
dunn.test(data2$Time, g=data2$ISSUE_TYPE, kw=TRUE, method="holm")
132+
133+
134+
# Calculating the CDF for all the distributions.
135+
136+
input_rmd_issues <- read.csv('./results/data_for_RQ3.csv')
137+
issues <- list("FloatMath", "UseSparseArrays", "UseValueOf", "HandlerLeak", "ViewHolder", "Recycle", "DrawAllocation")
138+
for (i in 1:length(issues))
139+
{
140+
print(paste0("Name of Performance issues: ", issues[[i]]))
141+
tmstmp <- input_rmd_issues$Time[input_rmd_issues$ISSUE_TYPE == issues[[i]]] / 86400
142+
distribution <- list("norm", "exp", "weibull", "gamma", "lnorm", "cauchy")
143+
for (j in 1:length(distribution))
144+
{
145+
print(paste0("Name of Distribution: ", distribution[[j]]))
146+
title_ecdf <- paste(issues[[i]], distribution[[j]], "ECDF-Plot", sep = "-")
147+
title_all <- paste(issues[[i]], distribution[[j]], "All-Plots", sep = "-")
148+
#pdf(paste("C:/Users/Teerath Das/Desktop/written/newpdfs/hags/", tit, ".pdf", sep=""), width=11, height=7)
149+
pdf(paste('./Distribution_Plots_RQ3/', title_all, ".pdf", sep=""), width=11, height=7)
150+
if (distribution[j] == "exp" | distribution[j] == "lnorm")
151+
{
152+
pdf(paste("./Distribution_Plots_RQ3/", title_ecdf, ".pdf", sep=""), width=11, height=7)
153+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle")
154+
cdfcomp(list(fumle),addlegend = FALSE, datacol = "red", fitcol = "blue", main=distribution[[j]], xlab="Decays (days)", ylab="CDF", do.points=F, lwd = 2, cex.axis = 1.8, cex.lab=1.5, cex.main=1.5)
155+
#plot(fumle)
156+
dev.off()
157+
}
158+
else
159+
{
160+
pdf(paste("./Distribution_Plots_RQ3/", title_ecdf, ".pdf", sep=""), width=11, height=7)
161+
fumle <- fitdist(tmstmp, distr = distribution[[j]], method="mle",lower=c(0, 0))
162+
cdfcomp(list(fumle),addlegend = FALSE, datacol = "red", fitcol = "blue", main=distribution[[j]], xlab="Decays (days)", ylab="CDF", do.points=F, lwd = 2, cex.axis = 1.8, cex.lab=1.5, cex.main=1.5)
163+
#plot(fumle)
164+
dev.off()
165+
}
166+
plot(fumle)
167+
dev.off()
168+
}
169+
}
170+
171+
172+
#library(MASS)
173+
#data2 <- read.csv('C:/Users/Teerath Das/Desktop/written/data_for_RQ3.csv')
174+
#pdf(paste("./Distribution_Plots_RQ3/", "sim", ".pdf", sep=""), width=11)
175+
#ft <- subset(data2, data2$ISSUE_TYPE == "FloatMath")
176+
#tms <- ft$Time/86400
177+
#fit.params <- fitdistr(tms, "gamma")
178+
#ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
179+
# geom_line(aes(x=ft$Time/86400, y=pgamma(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["rate"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200, 1400)) + theme(axis.text.x = element_text(angle = 90, hjust = 1)) + labs(x = "Days", y = "CDF") + ggtitle("Gamma") + theme_classic()
180+
#dev.off()
181+
182+
#DrawAllocation_gamma
183+
#fit.params <- fitdistr(tms, "gamma")
184+
#p <- ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
185+
# geom_line(aes(x=ft$Time/86400, y=pgamma(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["rate"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200, 1400)) + labs(x = "Days", y = "CDF") + ggtitle("Gamma") + theme_bw() + theme(axis.text=element_text(size=12), axis.title=element_text(size=14,face="bold"), plot.title = element_text(hjust = 0.5, , size=14,face="bold"))
186+
#ggsave(plot = p, width = 7, dpi = 400, filename = "./Distribution_Plots_RQ3/drawallocation_gamma.pdf")
187+
188+
#FloatMah_weibull
189+
#fit.params <- fitdistr(tms, "weibull", lower=c(0, 0))
190+
#p <- ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
191+
# geom_line(aes(x=ft$Time/86400, y=pweibull(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["scale"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200)) + labs(x = "Days", y = "CDF") + ggtitle("Weibull") + theme_bw() + theme(axis.text=element_text(size=12), axis.title=element_text(size=14,face="bold"), plot.title = element_text(hjust = 0.5, , size=14,face="bold"))
192+
#ggsave(plot = p, width = 7, dpi = 400, filename = "C:/Users/Teerath Das/Desktop/written/newpdfs/float_weibull.pdf")
193+
194+
195+
#HandlerLeak_Weibull
196+
#fit.params <- fitdistr(tms, "weibull", lower=c(0, 0))
197+
#p <- ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
198+
# geom_line(aes(x=ft$Time/86400, y=pweibull(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["scale"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200)) + labs(x = "Days", y = "CDF") + ggtitle("Weibull") + theme_bw() + theme(axis.text=element_text(size=12), axis.title=element_text(size=14,face="bold"), plot.title = element_text(hjust = 0.5, , size=14,face="bold"))
199+
#ggsave(plot = p, width = 7, dpi = 400, filename = "./Distribution_Plots_RQ3/handlerleak_weibull.pdf")
200+
201+
#Recycle_weibull
202+
#fit.params <- fitdistr(tms, "weibull", lower=c(0, 0))
203+
#p <- ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
204+
# geom_line(aes(x=ft$Time/86400, y=pweibull(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["scale"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200)) + labs(x = "Days", y = "CDF") + ggtitle("Weibull") + theme_bw() + theme(axis.text=element_text(size=12), axis.title=element_text(size=14,face="bold"), plot.title = element_text(hjust = 0.5, , size=14,face="bold"))
205+
#ggsave(plot = p, width = 7, dpi = 400, filename = "./Distribution_Plots_RQ3/recycle_weibull.pdf")
206+
207+
208+
#ViewHolder_weibull
209+
#fit.params <- fitdistr(tms, "weibull", lower=c(0, 0))
210+
#p <- ggplot(ft, aes(tms)) + stat_ecdf(geom = "step", colour = "red", size = 1) +
211+
# geom_line(aes(x=ft$Time/86400, y=pweibull(ft$Time/86400,fit.params$estimate["shape"], fit.params$estimate["scale"])), color="blue", size = 1) + scale_x_discrete(limit = c(0, 200, 400, 600, 800, 1000, 1200)) + labs(x = "Days", y = "CDF") + ggtitle("Weibull") + theme_bw() + theme(axis.text=element_text(size=12), axis.title=element_text(size=14,face="bold"), plot.title = element_text(hjust = 0.5, , size=14,face="bold"))
212+
#ggsave(plot = p, width = 7, dpi = 400, filename = "./Distribution_Plots_RQ3/viewholder_weibull.pdf")
213+
214+
215+
216+

0 commit comments

Comments
 (0)