2016-04-26 12 views
0

Pythonプロットでは、セカンダリx軸を使用して代替値を表示したいと考えています。私はラテックスフォントもかなり好きで、これらのフォントをプロット全体に表示したいと思っています。しかし、セカンダリ軸を設定するとラテックスフォントが消えてしまいます。ここでは例を働い最小です:pyplot:セカンダリ軸ラベルのフォントプロパティを変更する

import numpy as np 
import matplotlib.pyplot as plt 

Xvalues = np.linspace(0,10,100) 
Yvalues = np.sqrt(Xvalues) 
Xticks = np.linspace(0,10,6) 

AltXvalues = np.log10(Xvalues+1) 
AltLabels = ["%.2f" % x for x in AltXvalues] # Round these values 

fig = plt.figure() 
plt.rcParams['text.usetex'] = True 

ax1 = fig.add_subplot(1,1,1) 
ax1.plot(Xvalues, Yvalues) 
ax1.set_xticks(Xticks) 
ax1.set_xlabel('$x_1$') 
ax1.set_ylabel('$y$') 

ax2 = ax1.twiny() 
ax2.set_xlabel('$\\log_{10}\\,(x_1+1)$') 
ax2.set_xticks(Xticks) 
ax2.set_xticklabels(AltLabels) 

plt.show() 

Example

どのように私は、ラテックスフォントが二軸に継続していることを確認することができますか?

答えて

0

これは、を設定したときにそれらのラベルを文字列にしているためです。プライマリ軸目盛りラベルに表示される別のフォントは、LaTeXの数式モードでこれらのラベルが印刷されているためです。ありがとう、

AltLabels = ["$%.2f$" % x for x in AltXvalues] # Round these values 

$兆候に注意してください)

enter image description here

+0

ファンタスティック:だから、簡単な修正はAltLabel文字列に数式モードの演算子を追加することです。それは完全に機能します。私はそれが文字列変換に関連していたことを知っていましたが、フォーマットで数学環境を使用できるかどうかはわかりませんでした。 –

関連する問題