Difference between revisions of "Visualization Tools"

From Self-Organization Wiki
Jump to: navigation, search
(Box plot)
Line 37: Line 37:
 
  boxplot(a, xlab="Generation", ylab="Fitness")
 
  boxplot(a, xlab="Generation", ylab="Fitness")
 
  dev.off()
 
  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 Boxplot with the converted data.
 +
 +
import matplotlib.pyplot as plt
 +
import numpy as np
 +
 +
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()

Revision as of 10:14, 8 March 2019

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 Boxplot with the converted data.

import matplotlib.pyplot as plt import numpy as np

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()