私はMatplotlibグラフをカメラ対応の 提出物の一部として使用しようとしており、出版社はタイプ1のフォント のみを使用する必要があります。タイプ1のフォントとロググラフ
私は、PDFのバックエンドが のリニアY軸を持つ単純グラフのType-1フォントをうまく出力しますが、 対数Y軸のType-3フォントを出力していることがわかりました。対数YSCALEを使用して
はおそらく指数 表記のデフォルトの使用の 使用Type 3フォントには思えるmathtextの使用を、発生します。 pyplot.yticks()を使用して指数を使用しないようにするには、 を使用してください。 これは、大きなラベル (10^6のような)または書き込みを行うようにプロット領域を移動する必要があります軸は10,100,1Kなどとなり、フィットします。
は私が 同じ動作生成 matplotlibのマスター、今日のように枝だけでなく、1.1.1、して以下に例をテストしてみたので、これはおそらく、ちょうど バグであることを私は知りません予期せぬ動作。
#!/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)
ログ軸を持つタイプ1フォントを取得するクリーンな方法を知っている人はいますか?
ありがとうございます!
、これも上に投稿されましたmpl-usersメーリングリスト:http://matplotlib.1069221.n5.nabble.com/Type-1-fonts-with-log-graphs-tt39606.html – pelson
S ome有用な参考文献(それらの中にこの質問に対する答えはありません):http://matplotlib.1069221.n5.nabble.com/Type-1-font-infigure-needed-td10294.html&http://nerdjusttyped.blogspot .co.uk/2010/07/type-1-fonts-and-matplotlib-figures.html – pelson