2010-05-18 19 views
1

J'ai quelques problèmes avec mes premières tentatives d'utilisation de matplotlib et de scipy pour faire quelques nuages ​​de points de mes données (trop de variables, essayant de voir beaucoup de choses à la fois). Voici un code de la mine qui fonctionne assez bien ...Problème d'utilisation du latex dans Matplotlib/Scipy etc

import numpy 
from scipy import * 
import pylab 
from matplotlib import * 
import h5py 

FileID = h5py.File('3DiPVDplot1.mat','r') 
# (to view the contents of: list(FileID)) 
group = FileID['/'] 
CurrentsArray = group['Currents'].value 
IvIIIarray = group['IvIII'].value 
PFarray = group['PF'].value 
growthTarray = group['growthT'].value 
fig = pylab.figure() 
ax = fig.add_subplot(111) 
cax = ax.scatter(IvIIIarray, growthTarray, PFarray, CurrentsArray, alpha=0.75) 
cbar = fig.colorbar(cax) 
ax.set_xlabel('Cu/III') 
ax.set_ylabel('Growth T') 
ax.grid(True) 
pylab.show() 

J'ai essayé de changer le code pour inclure les polices de latex et l'interprétation, rien de tout cela semble fonctionner pour moi, cependant. Voici une tentative d'exemple qui ne fonctionne pas:

import numpy 
from scipy import * 
import pylab 
from matplotlib import * 
import h5py 

rc('text', usetex=True) 
rc('font', family='serif') 

FileID = h5py.File('3DiPVDplot1.mat','r') 
# (to view the contents of: list(FileID)) 
group = FileID['/'] 
CurrentsArray = group['Currents'].value 
IvIIIarray = group['IvIII'].value 
PFarray = group['PF'].value 
growthTarray = group['growthT'].value 
fig = pylab.figure() 
ax = fig.add_subplot(111) 
cax = ax.scatter(IvIIIarray, growthTarray, PFarray, CurrentsArray, alpha=0.75) 
cbar = fig.colorbar(cax) 
ax.set_xlabel(r'Cu/III') 
ax.set_ylabel(r'Growth T') 
ax.grid(True) 
pylab.show() 

J'utilise Python26 installé fink avec des paquets correspondants pour scipy matplotlib etc. Je l'ai utilisé ipython et le travail manuel au lieu de scripts en Python.

Depuis que je suis complètement nouveau à python et Scipy, je suis sûr que je fais des erreurs simples stupides. S'il te plaît, éclaire-moi! J'apprécie grandement l'aide!

Répondre

0

Le code me semble correct, en particulier les commandes rc.

Consultez cette page: Text Rendering with LaTeX. Assurez-vous que LaTeX, dvipng et ghostscript sont installés. Vérifiez également quel backend vous utilisez; le vôtre ne peut pas supporter LaTeX.

+0

Salut Steve! Merci pour vos commentaires, j'apprécie vos réflexions à ce sujet. J'exécute le backend MacOSX (version inconnue) basé sur le drapeau --verbose-helpful. plus info-matplotlib 0.99.0 (disponible sur fink) tzinfo.py donne un avertissement de dépréciation en raison de la prochaine version de py30 je crois. – AllenH

+0

BTW, je devrais mentionner que j'obtiens des instances de la production de latex avec des parcelles plus simples, ainsi j'essaye de dépister ainsi de cette manière. Pour une raison quelconque, le code ci-dessus ne produit même pas le graphique de dispersion normal - donc certains fils se croisent quelque part - je soupçonne que mon utilisation de python/scipy est incorrecte. – AllenH

2

Pour ceux d'entre vous débutez scipy/matplotlib, j'ai trouvé utile pour trouver des infos sur mon installation comme je l'utilise actuellement ... de ce link:

Créer un fichier appelé simple_plot.py qui comprend le script minimal:

from pylab import * 
plot([1,2,3]) 
show() 

puis exécutez la commande suivante à la ligne de commande:

python simple_plot.py --verbose-helpful 

le résultat reçu est:

$HOME=/Users/me 
CONFIGDIR=/Users/me/.matplotlib 
matplotlib data path /sw/lib/python2.6/site-packages/matplotlib/mpl-data 
loaded rc file /sw/lib/python2.6/site-packages/matplotlib/mpl-data/matplotlibrc 
matplotlib version 0.99.0 
verbose.level helpful 
interactive is False 
units is False 
platform is darwin 
Using fontManager instance from /Users/me/.matplotlib/fontList.cache 
/sw/lib/python2.6/site-packages/pytz/tzinfo.py:5: DeprecationWarning: the sets module is deprecated 
    from sets import Set 
backend MacOSX version unknown 

J'espère que cela aide quelqu'un débutant comme moi! :) Merci pour les pensées de tout le monde à ce sujet!