2

(i) 3 つの重なり合うバンドを表示する必要がありましたが、3 つの色 (不透明度が制御されている) が使用されている場合は良くありません。(ii) 次に、1 つのバンドのハッチ fill_between が必要でした。コードを以下に示します。(iii) .ps または .eps でエクスポートする際に、色の不透明度の問題に直面しています。Pdf 出力は問題ないように見えますが、紙 (latex;kile) に入れるとかすかに見えます。とにかく、.ps または .eps 形式の図だけが必要です。「pdf2ps」を使用して取得できますが、この場合の出力 .ps ファイルは、紙 (ラテックス) ではかすかに見えます。これから .ps または .eps (ベクター形式のみ) の出力を取得する方法を提案してください。ありがとう。

from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
## for Palatino and other serif fonts use:
#rc('font',**{'family':'serif','serif':['Palatino']})
rc('text', usetex=True)

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

lcrit=0.5-np.sqrt(5)/6
l,r1,r2,r3,r4,r5,r6,zn2=np.loadtxt("stiff_reso.d",usecols=(0,1,2,3,4,5,6,7),unpack=True)

plt.plot(l,r1,linewidth=2,color="green")
plt.plot(l,r2,linewidth=2,color="green")
plt.plot(l,r3,linewidth=2,color="black")
plt.plot(l,r4,linewidth=2,color="black")
plt.plot(l,r5,linewidth=2,color="red")
plt.plot(l,r6,linewidth=2,color="red")

plt.fill_between(l,r2,r1, color='green',alpha=0.4)
plt.fill_between(l,r4,r3, color="none",hatch="/",edgecolor="k")
plt.fill_between(l,r6,r5, color='red',alpha=0.4)

plt.plot([lcrit,lcrit], [0,25], color='purple', linestyle='dashed', linewidth=2)

plt.ylabel(r"$(a_-/a_E)$",fontsize=20)
plt.xlabel(r"$\Lambda/(\kappa \rho_c)$",fontsize=20)

ax= plt.gca()

plt.xlim([0,0.14])
plt.ylim([1,5.5])
plt.text(0.122, 2.0, r'$\Lambda=\Lambda_{crit}$',rotation='vertical', fontsize=16)

p1 = Rectangle((0, 0), 1, 1, fc="green",alpha=0.4)
p2 = Rectangle((0, 0), 1, 1,hatch="//",edgecolor="k")
p3 = Rectangle((0, 0), 1, 1, fc="red",alpha=0.4)
plt.legend([p1,p2,p3], ["1st resonance band","2nd resonance band","3rd resonance   band"],loc=2)

#plt.savefig("reso_stiff.eps")
plt.savefig("reso_stiff.pdf")
plt.show()
4

0 に答える 0