Difference between revisions of "Visualization Tools"
Markumueller (talk | contribs) (→Box plots with Python) |
Markumueller (talk | contribs) (→Box plots with Python) |
||
Line 41: | Line 41: | ||
This simple code shows how to load data from a text file (one-dimensional array), convert in float values and | This simple code shows how to load data from a text file (one-dimensional array), convert in float values and | ||
− | generate a Box plot within the converted data. Note: keep your | + | generate a Box plot within the converted data. Note: keep your text- and python file in the same path. |
import matplotlib.pyplot as plt | import matplotlib.pyplot as plt |
Revision as of 09:42, 8 March 2019
Contents
Box plot
A box plot is a good way to depict results where measurements have been taken over another parameter, for example the fitness of several independent runs of an evolutionary algorithm over the number of generations.
Box plots with R
The statistic software R can be installed quickly, e.g., on Debian/Ubuntu Linux by "apt-get install r-base". The data must be given in a tab-seperated file, where each column comprises the measurements for one box.
x <- read.table("datafilename.tsv") postscript("outputfilename.ps") boxplot(x) dev.off()
The postscript command redirects the output to a postscript file. The last command flushes the output and closes the file.
Data manipulation with R
Sometimes it is necessary to postprocess data before plotting it.
x <- read.table("datafilename.tsv")
storing every nth column with n=3
y <- x[seq(1,ncol(x),3)]
storing every nth line with n=3, starting from first.
z <- x[(seq(1,nrow(x),3)), ]
Example script that selects every 6th column for data and plots it into a pdf file
y <- read.table("rboxplot.txt", col.names = seq(1,500,5), check.names=F) z <- y[(seq(1,nrow(y),6)), ] a <- z[seq(1,ncol(z),3)] pdf("boxplot_fitness.pdf") boxplot(a, xlab="Generation", ylab="Fitness") dev.off()
Box plots with Python
This simple code shows how to load data from a text file (one-dimensional array), convert in float values and generate a Box plot within the converted data. Note: keep your text- and python file in the same path.
import matplotlib.pyplot as plt f = open("my_file.txt", "r") data = [] for line in f: data.append(float(line)) plt.boxplot(data) plt.xlabel('my_x_value') plt.ylabel('my_y_value') plt.title('My Boxplot') plt.show()