Difference between revisions of "Visualization Tools"

From Self-Organization Wiki
Jump to: navigation, search
(Box plots with Python)
(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 Boxplot with the converted data.  
+
generate a Box plot within the converted data. Note: keep your
  
 
  import matplotlib.pyplot as plt
 
  import matplotlib.pyplot as plt

Revision as of 09:41, 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 Box plot within the converted data. Note: keep your

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