我正在尝试使用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。这可能是与后端渲染器有关的平台特定问题,但我不确定。任何建议都将非常受欢迎。
答案 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
。