Заполнение люка становится слабым в постскриптуме matplotlib

(i) Мне нужно было показать 3 перекрывающихся полосы, что НЕ ХОРОШО, если используются три цвета (с контролируемой непрозрачностью). (ii) Тогда мне понадобился люк fill_between для одной полосы. Код приведен ниже. (iii) Теперь у меня проблемы с непрозрачностью цветов при экспорте в.ps или.eps. Вывод в формате PDF выглядит хорошо, но при печати на бумаге (латекс; кил) они выглядят более тусклыми. В любом случае мне нужен только рис в формате.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()

0 ответов

Другие вопросы по тегам