Matplotlib `fill_between`: удалить тонкую границу - PullRequest
0 голосов
/ 11 июля 2019

Рассмотрим следующий код:

import matplotlib.pyplot as plt
import numpy as np
from pylab import *

graph_data = [[0, 1, 2, 3], [5, 8, 7, 9]]
x = range(len(graph_data[0]))
y = graph_data[1]
fig, ax = plt.subplots()

alpha = 0.5
plt.plot(x, y, '-o',markersize=3,  color=[1., alpha, alpha], markeredgewidth=0.0)
ax.fill_between(x, 0, y, facecolor=[1., alpha, alpha], interpolate=False)    

plt.show()
filename = 'test1.pdf'
fig.savefig(filename, bbox_inches='tight')

Работает нормально. Однако при увеличении масштаба в сгенерированном PDF-файле я вижу две тонкие серые / черные границы, которые разделяют линию:

Я вижу это при просмотре в Edge и Chrome. У меня вопрос, как я могу избавиться от границ?

ОБНОВЛЕНИЕ Я забыл упомянуть, я использовал Sage для создания графика. Теперь это кажется проблемой, специфичной для Sage (а не для Python в целом). На этот раз я использовал собственный Python и получил правильный результат.

1 Ответ

1 голос
/ 11 июля 2019

Я не мог воспроизвести его, но, возможно, вы можете попытаться не строить линию.

import matplotlib.pyplot as plt
import numpy as np
from pylab import *

graph_data = [[0, 1, 2, 3], [5, 8, 7, 9]]
x = range(len(graph_data[0]))
y = graph_data[1]
fig, ax = plt.subplots()

alpha = 0.5
plt.plot(x, y, 'o',markersize=3,  color=[1., alpha, alpha])
ax.fill_between(x, 0, y, facecolor=[1., alpha, alpha], interpolate=False)    

plt.show()
filename = 'test1.pdf'
fig.savefig(filename, bbox_inches='tight')
...