soldatcassis
Bonjour,
je me lance dans python et utilise mathplotlib pour mes graphiques
En copiant le script ci-dessous, j'espérais obtenir des symboles latex sur l'axe des x, comme c'est montré dans le tutoriel.
Mais voilà le résultat chez moi.
Une idée ?
D'avance merci.
from pylab import *
from math import*
figure(figsize=(8,6), dpi=80)
subplot(1,1,1)
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
plot(X,C,color = "blue", linewidth = 0.5, linestyle = "-")
plot(X,S, color = "green", linewidth = 0.5, linestyle = "-")
xlim(-4.0, 4.0)
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$',r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$' ])
yticks([-1, 0, +1])
ylim(-1.5,1.5)
show()
j'obtiens: .A, .AN, E , AN et A
jypaigue
Hum,
Personnellement, j'ai bien les symboles (pi) qui s'affichent :
Tu peux indiquer les erreurs que tu as quand tu exécutes
python tonscript.py
?
Je pense que tu n'as pas les polices tex nécessaires d'installées.
Par ailleurs, il est nécessaire de virer ~/.matplotlib après l'installation d'une police. En effet, .matplotlib contient une liste locale des polices présentes, et elle ne se met visiblement pas à jour toute seule.
soldatcassis
Salut, merci pour ta rapide réponse.
J'ai 2 messages différents suivants que je tape python3 monscript.py ou simplement python monscript.py qui lui me retourne le graphique avec les lettres citées dans mon premier message.
voici les messages
python3 tuto1.py
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib64/python3.3/tkinter/__init__.py", line 1442, in __call__
return self.func(*args)
File "/usr/lib64/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 276, in resize
self.show()
File "/usr/lib64/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 348, in draw
FigureCanvasAgg.draw(self)
File "/usr/lib64/python3.3/site-packages/matplotlib/backends/backend_agg.py", line 439, in draw
self.figure.draw(self.renderer)
File "/usr/lib64/python3.3/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.3/site-packages/matplotlib/figure.py", line 1000, in draw
func(*args)
File "/usr/lib64/python3.3/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.3/site-packages/matplotlib/axes.py", line 2088, in draw
a.draw(renderer)
File "/usr/lib64/python3.3/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.3/site-packages/matplotlib/axis.py", line 1051, in draw
renderer)
File "/usr/lib64/python3.3/site-packages/matplotlib/axis.py", line 1000, in _get_tick_bboxes
extent = tick.label1.get_window_extent(renderer)
File "/usr/lib64/python3.3/site-packages/matplotlib/text.py", line 753, in get_window_extent
bbox, info = self._get_layout(self._renderer)
File "/usr/lib64/python3.3/site-packages/matplotlib/text.py", line 305, in _get_layout
ismath=False)
File "/usr/lib64/python3.3/site-packages/matplotlib/backends/backend_agg.py", line 208, in get_text_width_height_descent
font = self._get_agg_font(prop)
File "/usr/lib64/python3.3/site-packages/matplotlib/backends/backend_agg.py", line 246, in _get_agg_font
fname = findfont(prop)
File "/usr/lib64/python3.3/site-packages/matplotlib/font_manager.py", line 1299, in findfont
result = fc_match(prop, fontext)
File "/usr/lib64/python3.3/site-packages/matplotlib/font_manager.py", line 1283, in fc_match
for match in _fc_match_regex.finditer(output):
TypeError: can't use a string pattern on a bytes-like object
et rien si python tuto1.py
merci
jypaigue
Rien avec python... Je ne sais pas du coup. Chez moi ça fonctionne, mais j'utilise F17 avec texlive-2012, deux choses qui diffèrent avec ta configuration...
Peut-être que quelqu'un d'autre aura une idée
soldatcassis
Salut,
Quand je dis que je n'ai rien avec python, c'est pas de message d'erreur, mais j'ai l'image suivante (et en plus, j'ai appris à mettre une image dans un forum, merci)
Ce n'est peut-être pas le bon forum, mais si ça marchait sous f17, peut-être avec la version précédente de matplotlib (ici, j'ai la 1.2 0 -8)
Donc si une idée, déjà merci
jypaigue
La photo est illisible car trop petite.
Néanmoins, pour moi le suspect n°1 est le fait qu'il te manque une police latex... Ce que je trouve curieux c'est qu'il n'y a pas de message d'avertissement ou d'erreur à l’exécution.
Par exemple, tu peux aller jeter un coup d’œil là :
http://matplotlib.org/users/mathtext.html
matplotlib utilise visiblement la police STIX. Demandes à yum de te trouver quels sont les paquets correspondants, et installent ceux qui te semblent judicieux (genre pas les -doc). Ensuite tu vires ~/.matplotlib et puis tu relances ton script.
soldatcassis
Salut,
oui, désolé pour l'image, mais on peut voir que les indices de l'axe x ne sont pas \pi et autre.
.
en demandant à yum, j'ai les réponses suivantes
texlive-esstix.noarch : PostScript versions of the ESSTIX, with macro support
texlive-esstix-doc.noarch : Documentation for esstix
texlive-stix-doc.noarch : Documentation for stix
stix-fonts.noarch : Scientific and engineering fonts
stix-math-fonts.noarch : Scientific and engineering fonts, PUA glyphs
texlive-boondox.noarch : Mathematical alphabets derived from the STIX fonts
texlive-dutchcal.noarch : A reworking of ESSTIX13, adding a bold version
texlive-stix.noarch : OpenType Unicode maths fonts
et j'ai installé le dernier.
je relance la machine pour voir
A +
soldatcassis
ben, ça ne suffit pas
je pioche
jypaigue
et ces deux là :
stix-fonts.noarch : Scientific and engineering fonts
stix-math-fonts.noarch : Scientific and engineering fonts, PUA glyphs
?
Sinon, tu as bien pensé à supprimer/renomer ~/.matplotlib avant ton test ?
soldatcassis
je les ai aussi installés
j'ai viré .matplotlib
j'ai relancé mon script mais toujours le même résultat.
Question: si tu es sur fc18, est-ce que ça marche chez toi ?
jypaigue
soldatcassis wrote:je les ai aussi installés
j'ai viré .matplotlib
j'ai relancé mon script mais toujours le même résultat.
Question: si tu es sur fc18, est-ce que ça marche chez toi ?
Comme dit dans le post #4, je suis sous Fedora 17 et j'utilise texlive 2012... Mais du coup, je n'en sais pas plus.
soldatcassis
Et yeah!
Comme tu le disais au début, le problème devait venir des fontes tex. J'ai donc suivi ce poste
http://forums.fedoraforum.org/showthread.php?t=276820 (merci)
Ensuite j'ai essayé dans mon geany de compiler et d'exécuter mon tuto1.py, mais toujours rien
Alors, comme matplotlib 1.2 est pour python3, j'ai changé les commandes dans construire -> définir les commandes des construction .
dans compiler, j'ai ajouter un 3 après python
dans exécuter, j'ai ajouter un 3 après python
Ensuite, ok, f8 et f5 et voilà que tout semble joli.
ceci est l'image.
on peut passer à autre chose
Encore merci