2012-05-23 20 views
7

Nie mogłem znaleźć innego wątku lub dokumentacji na ten temat - czy ktoś kiedykolwiek z powodzeniem podkreślił w pakiecie pytfons matplotlib? Składnia używam jest coś takiego dla wszystkich innych atrybutów:Podkreślanie tekstu w Pythonie/Matplotlib

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

Jednak nie mogę dowiedzieć się, jak podkreślają to krótki tekst faktycznie kodowania linię do pliku.

Myśli?

Odpowiedz

11

Program Matplotlib może używać LaTeXa do obsługi całego tekstu, zobacz this page dokumentacji, aby uzyskać więcej informacji. Polecenie do podkreślania tekstu w LaTeX to po prostu \underline. Z docstring jednego z przykładowych skryptów:

Można używać TeX renderowanie cały tekst matplotlib jeśli text.usetex rc parametr jest ustawiony. Działa to obecnie na backendach agg i ps i wymaga, aby w systemie były poprawnie zainstalowane tex i inne zależności opisane w http://matplotlib.sf.net/matplotlib.texmanager.html. Przy pierwszym uruchomieniu skryptu zobaczysz wiele danych wyjściowych z tex i powiązanych narzędzi. Następnym razem, bieg może być cichy, jak dużo informacji jest buforowane w ~/.tex.cache

Tak jak prosty przykład możemy zrobić

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) 

dostać podkreślony tekst .

+0

Witaj Chris, eleganckie rozwiązanie. Udało mi się uzyskać ten podkreślenie w ten sposób, ale zmiana usetex na True wpływa również na resztę tekstu na rysunku (np. Numeracja na osiach wykresów staje się szeryfowa, a inne pogrubione teksty stają się niepogrubione.) Przypuszczam, że musicie zmienić te wszystkie na formatowanie tex, prawda? – nodapic

+0

Generalnie mogę używać poleceń LaTeXa bez biznesu 'rc' (to jest to, co zakładam, powoduje, że cały twój tekst jest renderowany inaczej). Jednak wydaje mi się, że potrzebuję tego na moim komputerze z Windows (zwykle pracuję na maszynie z Linuksem, nie jestem pewien, czy to jest problem). Daj sobie spokój bez tej linii i zobacz, czy wywołanie 'plt.text' nadal działa. – Chris

+0

Znalazłem, że mogę używać poleceń LaTeX * bez * wywoływania 'rc', o ile nie używam' plt.text', tzn. 'Plt.xlabel',' plt.title' itd. Działa poprawnie. Wydaje się, że to po prostu 'plt.text', który wymaga skonfigurowania' rc'. Jeśli zauważysz, że musisz użyć 'rc', możesz również skonfigurować czcionki itp., Których chcesz użyć. – Chris

Powiązane problemy