# IrisVisualization.py

from gpanel import *

datafile = "iris.csv"
species = ["setosa", "versicolor", "virginica"] # Spezies, Gattung, Pflanzenart
measurements = ["Sepal Length", "Sepal Width", "Petal Length",  "Petal Width"] 
colors = ["red", "green", "blue"]

# Select pair of measurements to show
xy = [2, 3]

def loadData(fileName):
    try:    
        fData = open(fileName, 'r')
    except:
        return []
    out = []
    for line in fData:
        line = line[:-1]  # remove \n
        if len(line) == 0:  # empty line
            continue
        li = [i for i in line.split(",")]
        out.append(li)
    fData.close()
    return out
    
def drawLabels():
    for i in range(3):
        setColor(colors[i])
        pos(1.5 + 3 * i, 10.5)
        fillCircle(0.1)
        image(species[i] + ".png", 0.3 + 3 * i, 8)

X = loadData(datafile)
makeGPanel(-1, 11, -1, 11)
drawGrid(0, 10.0, 0, 10.0, "gray")
text(8.5, -0.8, measurements[xy[0]] + " (cm)")
text(-0.9, 10.5, measurements[xy[1]] + " (cm)")
drawLabels()
title(measurements[xy[1]] + " versus " + measurements[xy[0]])
for sample in X:
    if sample[4] == "Iris-setosa":
        setColor("red")
    elif sample[4] == "Iris-versicolor":
        setColor("green")
    elif sample[4] == "Iris-virginica":
        setColor("blue")
    pos(float(sample[xy[0]]), float(sample[xy[1]]))     
    fillCircle(0.05)     
keep()
