2012-05-23 40 views
7

Non sono riuscito a trovare un altro thread o documentazione su questo argomento: qualcuno ha mai avuto successo sottolineando il pacchetto pythons matplotlib? La sintassi che sto usando è qualcosa di simile per tutti gli altri attributi:Sottolineatura del testo in Python/Matplotlib

plt.text(0.05, 0.90, 'Parameters: ', fontsize=12) 

Tuttavia, non riesco a capire come per sottolineare questo breve testo di realtà codifica una riga nel file.

Pensieri?

risposta

11

Matplotlib può utilizzare LaTeX per gestire tutto il testo, vedere this page della documentazione per ulteriori informazioni. Il comando per sottolineare il testo in LaTeX è semplicemente \underline. Dalla docstring di uno degli script di esempio:

È possibile utilizzare TeX per rendere tutto il testo matplotlib se il parametro di rc text.usetex è impostato. Funziona attualmente sui backend agg e ps e richiede che tu abbia tex e le altre dipendenze descritte a http://matplotlib.sf.net/matplotlib.texmanager.html correttamente installate sul tuo sistema. La prima volta che esegui uno script vedrai molto output da tex e strumenti associati. La prossima volta, la corsa può essere silenzioso, come un sacco di informazioni vengono memorizzate nella cache in ~/.tex.cache

Così come un semplice esempio possiamo fare

import matplotlib.pyplot as plt 
from matplotlib import rc 

rc('text', usetex=True) 

plt.sunplot(111) 

plt.text(0.05, 0.90, r'\underline{Parameters}: ', fontsize=12) 

per ottenere testo sottolineato .

+0

Ciao Chris, soluzione elegante. Sono stato in grado di ottenere la sottolineatura in questo modo, ma la modifica dell'usetex su True influisce anche sul resto del testo nella figura (ad esempio la numerazione sugli assi delle trame diventa serif e altri testi in grassetto diventano non-grassetto.) Presumo che vorrei devi anche modificare tutti quelli con la formattazione tex, giusto? – nodapic

+0

Generalmente posso usare i comandi LaTeX senza il lavoro 'rc' (che è quello che presumo fa in modo che tutto il tuo altro testo sia reso in modo diverso). Tuttavia, sembra che sia necessario sulla mia macchina Windows (normalmente lavoro su una macchina Linux, non sono sicuro che questo sia un problema). Provalo senza quella linea e vedi se la chiamata 'plt.text' funziona ancora. – Chris

+0

Ho scoperto che posso usare i comandi LaTeX * senza * chiamando 'rc' a patto che non usi' plt.text', cioè 'plt.xlabel',' plt.title' ecc. Funzionino bene. Sembra essere solo 'plt.text' che mi richiede di configurare' rc'. Se trovi che devi usare 'rc' puoi anche confiurare i font ecc. Che vuoi usare. – Chris

Problemi correlati