Próbuję utworzyć fabułę o jakości publikacji, ale napotkałem mały problem. Wydaje się domyślnie, że etykiety osi i etykiet w matplotlib są ważone cięższe niż znaki podziałki osi. Czy mimo to należy wymusić, aby etykiety osi/legendy miały taki sam ciężar, jak znaki podziałki?Python matplotlib: Zmień etykiety osi/legendę na pogrubioną na zwykłą wagę
import matplotlib.pyplot as plt
import numpy as np
plt.rc('text',usetex=True)
font = {'family':'serif','size':16}
plt.rc('font',**font)
plt.rc('legend',**{'fontsize':14})
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
fig = plt.figure(figsize=(5,5))
p1, = plt.plot(x,y)
p2, = plt.plot(x,x**2)
plt.xlabel('x-Axis')
plt.ylabel('y-Axis')
plt.legend([p1,p2],['Sin(x)','x$^2$'])
plt.gcf().subplots_adjust(left=0.2)
plt.gcf().subplots_adjust(bottom=0.15)
plt.savefig('Test.eps',bbox_inches='tight',format='eps')
plt.show()
mogę używać trybu matematycznego, ale problem (kłopot) jest, gdy mam zdanie na etykiecie, to znaczy
plt.xlabel('$\mathrm{This is the x-axis}$')
który squishes to wszystko razem. Mogę to naprawić, korzystając z
, ale wymaga to dużej liczby znaków interpunkcyjnych. Miałem nadzieję, że jest coś, co mógłbym zmienić, co pozwoliłoby mi obejść format \mathrm{}
i użyć standardowego formatu TeX.
Inną opcją, której próbowałem, było użycie \text
zamiast \mathrm
, ale wygląda na to, że interpreter języka Python tego nie rozpoznaje bez załadowania pakietu amms. Próbowałem również:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
plt.rc('text',usetex=True)
font = {'family':'serif','size':16}
plt.rc('font',**font)
plt.rc('legend',**{'fontsize':14})
matplotlib.rcParams['text.latex.preamble']=[r'\usepackage{amsmath}']
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
fig = plt.figure(figsize=(5,5))
p1, = plt.plot(x,y)
p2, = plt.plot(x,x**2)
plt.xlabel(r'$\text{this is the x-Axis}$')
plt.ylabel('$y-Axis$')
plt.legend([p1,p2],['Sin(x)','x$^2$'])
plt.gcf().subplots_adjust(left=0.2)
plt.gcf().subplots_adjust(bottom=0.15)
plt.savefig('Test.eps',bbox_inches='tight',format='eps')
plt.show()
Nie zwraca to pożądanego rezultatu.
Czy możesz wpisać kod, którego użyłeś na działce? Jeśli dobrze cię rozumiem, wszystkie etykiety (oś i legenda) zostały napisane podobnie jak "(" etykieta "), a jedynym wpisem w trybie matematycznym była etykieta" y "(" oś $ y "). Jeśli tak jest, to jest to świetne rozwiązanie! – Blink
Wykres został wygenerowany dokładnie z Twojego kodu, zmieniono tylko podświetloną linię! –
@Blink Dodano kod ... –