Python 保存图形时Matplotlib未正确显示直方图

Python 保存图形时Matplotlib未正确显示直方图,python,matplotlib,histogram,figure,Python,Matplotlib,Histogram,Figure,使用matplotlib,我在一个图中绘制了两个直方图。目标是稍后将它们添加到Latex文档中。我对两者之间的差异感兴趣,所以我使用低透明度并将它们相互叠加。在Spyder中,当我内联打印时,图像看起来很好。看 当我使用plt.savefig()将图像导出为PNG时,图像如下所示。但是,这在Latex文档中不起作用,因为伸缩性被破坏了。当我试图将其导出为PDF文件时,直方图的条形图似乎重叠,使其看起来像有边缘,如中所示 我认为问题的原因在于矢量格式,当放大和缩小PDF时,重叠会发生变化。当完

使用matplotlib,我在一个图中绘制了两个直方图。目标是稍后将它们添加到Latex文档中。我对两者之间的差异感兴趣,所以我使用低透明度并将它们相互叠加。在Spyder中,当我内联打印时,图像看起来很好。看

当我使用
plt.savefig()
将图像导出为PNG时,图像如下所示。但是,这在Latex文档中不起作用,因为伸缩性被破坏了。当我试图将其导出为PDF文件时,直方图的条形图似乎重叠,使其看起来像有边缘,如中所示

我认为问题的原因在于矢量格式,当放大和缩小PDF时,重叠会发生变化。当完全放大时,它看起来与PNG相同,当缩小时,重叠变得更大。如果有人知道这个问题的解决办法,我将不胜感激

我已经尝试过的事情:

  • 更改线宽/边颜色
  • 更改matplotlibrc文件
  • 使用rwidth更改垃圾箱的距离
我使用的代码:

    binwidth = (np.max(prediction) - np.min(prediction)) / (2*I**(1/3))
    kwargs = dict(alpha=0.5, bins=np.arange(min(prediction), max(prediction) + binwidth, binwidth))
    
    fig_path = '***.pdf'

    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)
    ax.hist(prediction.flatten(), **kwargs, label = 'NN')
    ax.hist(hedging_error, **kwargs, label = 'BS')
    ax.set_xlim((-3,3))
    ax.set_xlabel('Hedging error')
    ax.set_ylabel('Count')
    ax.legend()
    fig.savefig(fig_path)

linewidth
设置为零或将
edgecolor
设置为“无”有帮助吗?直方图的条形图似乎重叠,使其看起来像是有边。这些边勾勒出条形图,即直方图的箱子,使可视化更清晰。@ParthShah不幸的是,没有,起初我以为这只是边缘的问题,但那些已经关闭了