B|4KWH|T3
04-03-2010, 16:49
Salve, sto plottando dei dati in un grafico 3D con matplotlib.
Su ogni asse c'è una proprietà di una proteina, misurata con una metrica. Ogni punto del grafico 3D rappresenta quindi una proteina
import csv
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
rawfile = [line for line in open("final.csv").readlines()]
csvhandler = csv.reader(rawfile)
table = [row for row in csvhandler]
fig = plt.figure()
ax = Axes3D(fig)
xs = np.array([float(row[2]) for row in table[1:]])
ys = np.array([float(row[3]) for row in table[1:]])
zs = np.array([float(row[5]) for row in table[1:]])
ax.scatter(xs, ys, zs)
ax.set_xlabel("VolRatio")
ax.set_ylabel("LoopDisplacement")
ax.set_zlabel("HelixAltDisplacement")
plt.show()
Fin qui, quasi tutto bene. A parte il piccolo particolare che non c'è verso di far capire alla funzione scatter altri parametri opzionali. fa niente basta che mi plotta i dati.
Però vorrei fare in modo di visualizzare come etichette il nome delle proteine passandoci sopra col mouse (perchè se vengono fuori i nomi tutti insieme non si capisce nulla essendo circa 400 punti).
Qualcuno ha già usato/sa usare questa libreria e sa darmi una indicazione?
Sto guardando nella documentazione ma non riesco tanto ad orientarmi in mezzo a tanta roba.
Su ogni asse c'è una proprietà di una proteina, misurata con una metrica. Ogni punto del grafico 3D rappresenta quindi una proteina
import csv
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
rawfile = [line for line in open("final.csv").readlines()]
csvhandler = csv.reader(rawfile)
table = [row for row in csvhandler]
fig = plt.figure()
ax = Axes3D(fig)
xs = np.array([float(row[2]) for row in table[1:]])
ys = np.array([float(row[3]) for row in table[1:]])
zs = np.array([float(row[5]) for row in table[1:]])
ax.scatter(xs, ys, zs)
ax.set_xlabel("VolRatio")
ax.set_ylabel("LoopDisplacement")
ax.set_zlabel("HelixAltDisplacement")
plt.show()
Fin qui, quasi tutto bene. A parte il piccolo particolare che non c'è verso di far capire alla funzione scatter altri parametri opzionali. fa niente basta che mi plotta i dati.
Però vorrei fare in modo di visualizzare come etichette il nome delle proteine passandoci sopra col mouse (perchè se vengono fuori i nomi tutti insieme non si capisce nulla essendo circa 400 punti).
Qualcuno ha già usato/sa usare questa libreria e sa darmi una indicazione?
Sto guardando nella documentazione ma non riesco tanto ad orientarmi in mezzo a tanta roba.