Существует один способ нарисовать истинную границу, используя альфа, в том смысле, что более толстая черная линия не будет видна под красной линией.Хитрость заключается в том, чтобы построить белую линию, покрывающую нежелательную часть черной линии, чтобы оставить только границу.
Таким образом, вместо этого «штрих с альфа» будет выглядеть так:
pe1 = [mpe.Stroke(linewidth=8, foreground='black'),
mpe.Stroke(foreground='white',alpha=1),
mpe.Normal()]
plt.plot(x, np.sin(x-np.pi/3.), color='red', label="stroke with alpha", lw=5,
alpha=0.5, path_effects=pe1)
Что дает следующий график:
Как видно, это решает проблему цветовых различий между наличием границы и отсутствием ее, но мешает видеть строки ниже.
В зависимости от приложения, альфа-параметр белого слоя также может быть установлен на полупрозрачное значение, чтобы достичь компромисса между маскировкой черной линии для построения границы и возможностью видеть другие линииэто может быть ниже.Например, следующий path_effect:
pe1 = [mpe.Stroke(linewidth=8, foreground='black'),
mpe.Stroke(foreground='white',alpha=0.6),
mpe.Normal()]
приводит к:
, который находится на полпути между розоватым цветом, полученным в результате объединениякрасный и альфа 0.5, и видя полностью черную линию внизу;все еще позволяя видеть другие линии, нанесенные ранее.