渲染为pdf时,Matplotlib不显示阴影线

时间:2011-03-04 15:08:36

标签: python matplotlib

我正在尝试使用matplotlib中的阴影线功能,它在显示到屏幕时工作正常。但是,当我将图形保存为pdf格式时,不会渲染阴影标记:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,2*np.pi,100)

plt.figure()
plt.fill(x,np.sin(x),color='blue',alpha=0.5,hatch='/')
plt.show()
plt.savefig('./test.pdf',format='pdf')

我在OS X 10.6.6上的pylab中使用matplotlib 1.0.1。这可能是与后端渲染器有关的平台特定问题,但我不确定。任何建议都将非常受欢迎。

2 个答案:

答案 0 :(得分:5)

看起来像个错误。请在github issue tracker

中提交

与此同时,这是一个解决方法:

plt.fill(x,np.sin(x),color='blue',alpha=0.5)
plt.fill(x,np.sin(x),color='None',alpha=0.5,edgecolor='blue',hatch='/')

答案 1 :(得分:1)

TL; DR:以PDF导出时,使用alpha=.99来绘制阴影线

已接近2020年,使用plt.bar()时该错误仍然存​​在。使用PNG渲染时,所有内容均正确渲染。但是,渲染图案填充时,PDF导出会出现故障。阴影不可见,有时在放大/缩小时可见(有时在不同的计算机上测试时不可见),尚不清楚错误的来源。

我们意识到它与alpha选项相关联。使用alpha=.5时,颜色可见50%,以及阴影(可见50%)。好一步,我们几乎可以看到舱口。因此,让我们尝试使用alpha=.99,以使所有内容几乎都是100%可见的。

有效!嗨!

在我们的解决方法中,无需像上一个答案一样重复行。保持颜色选项不变,只需设置alpha=.99