Próbuję użyć wykresów Matplotlib jako części gotowego do przesłania z aparatu , a publikacja wymaga użycia tylko czcionek typu 1 .Czcionki typu 1 z wykresami logów
Zauważyłem, że backend PDF z łatwością wyprowadza czcionki Type-1 dla prostych wykresów z liniowymi osiami Y, ale wyprowadza czcionki Type-3 dla logarytmicznych osi Y.
Użycie logarytmicznej skali powoduje użycie mathtext, który wydaje się być używać czcionek typu 3, prawdopodobnie ze względu na domyślne użycie notacji wykładniczej . Mogę użyć brzydkiego hacka, aby obejść to - używając pyplot.yticks() w celu wymuszenia tyknięć osi, aby nie używać wykładników - ale wymagałoby to przesunięcia obszaru wykresu, aby pomieścić duże etykiety (jak 10^6) lub pisanie osie takie jak 10, 100, 1K itd., aby pasowały.
Przetestowałem przykład poniżej z matplotlib głównej gałęzi dzień dzisiejszy, jak i 1.1.1, która produkuje takie samo zachowanie, więc nie wiem, że jest to błąd, prawdopodobnie tylko nieoczekiwane zachowanie.
#!/usr/bin/env python
# Simple program to test for type 1 fonts.
# Generate a line graph w/linear and log Y axes.
from matplotlib import rc, rcParams
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
#rc('font',**{'family':'sans-serif','sans-serif':['computer modern sans serif']})
# These lines are needed to get type-1 results:
# http://nerdjusttyped.blogspot.com/2010/07/type-1-fonts-and-matplotlib-figures.html
rcParams['ps.useafm'] = True
rcParams['pdf.use14corefonts'] = True
rcParams['text.usetex'] = False
import matplotlib.pyplot as plt
YSCALES = ['linear', 'log']
def plot(filename, yscale):
plt.figure(1)
xvals = range(1, 2)
yvals = xvals
plt.plot(xvals, yvals)
plt.yscale(yscale)
plt.savefig(filename + '.pdf')
if __name__ == '__main__':
for yscale in YSCALES:
plot('linegraph-' + yscale, yscale)
Czy ktoś wie, w jaki sposób można uzyskać czcionki Type 1 z osiami logu?
Dzięki!
tylko dla świadomości, było to również wysłana na lista dyskusyjna mpl-users: http://matplotlib.1069221.n5.nabble.com/Type-1-fonts-with-log-graphs-tt39606.html – pelson
S użyteczne odniesienia (brak odpowiedzi na to pytanie w nich): http://matplotlib.1069221.n5.nabble.com/Type-1-font-in-figures-needed-td10294.html & http: //nerdjusttyped.blogspot .co.uk/2010/07/type-1-fonts-and-matplotlib-figures.html – pelson