plot.ga-method.Rd
The plot
method for ga-class
objects gives a plot
of best and average fitness values found during the iterations of the
GA search.
An object of class "ga"
.
Not used.
A vector of two values specifying the limits on the y-axis.
The magnification to be used for points.
The colours to be used for best and average fitness values.
The type of points to be used for best and average fitness values.
The type of lines to be used for best and average fitness values.
A logical specifying if a legend should be included.
A function for grid drawing of NULL to avoid drawing one.
Further arguments, currently not used.
Plot best and average fitness values at each iteration of GA search.
The method invisibly return a data.frame
with the iterations and summary statistics for the fitness function evaluated at each iteration.
# See examples in help(ga)
# The following code shows how to obtain graphs using the
# ggplot2 plotting system
if (FALSE) {
GA <- ga(type = "real-valued",
fitness = function(x) -(abs(x)+cos(x)),
lower = -20, upper = 20,
popSize = 20, pmutation = 0.2, maxiter = 50)
out <- plot(GA)
library(reshape2)
df <- melt(out[,c(1:3,5)], id.var = "iter")
library(ggplot2)
ggplot(out) +
geom_ribbon(aes(x = iter, ymin = median, ymax = max,
colour = "median", fill = "median")) +
geom_line(aes(x = iter, y = max, colour = "max")) +
geom_point(aes(x = iter, y = max, colour = "max")) +
geom_line(aes(x = iter, y = mean, colour = "mean"), lty = 2) +
geom_point(aes(x = iter, y = mean, colour = "mean"), pch = 1) +
xlab("Generation") + ylab("Fitness values") +
scale_colour_manual(breaks = c("max", "mean", "median"),
values = c("green3", "dodgerblue3", adjustcolor("green3", alpha.f = 0.1))) +
scale_fill_manual(breaks = "median",
values = adjustcolor("green3", alpha.f = 0.1)) +
guides(fill = "none",
colour = guide_legend(override.aes =
list(fill = c(NA, NA, adjustcolor("green3", alpha.f = 0.1)),
pch = c(19,1,NA)))) +
theme_bw() +
theme(legend.title = element_blank(),
legend.pos = "top",
legend.background = element_blank())
}