gpt4 book ai didi

python - Matplotlib savefig 背景总是透明的

转载 作者:行者123 更新时间:2023-12-04 00:02:05 28 4
gpt4 key购买 nike

问题

我似乎无法获得 savefig()实际保存没有透明图形背景的PNG文件。

这是阅读并尝试了之前发布、回答、诅咒的所有建议,并且还多次阅读了 API 文档。我已经阅读了所有内容,但仍然无法获得不透明的人物面孔

背景

我正在使用 matplotlib 和 savefig 创建一个 PNG 文件。 (环境:macos - 使用 PY 3.7 的最新 anaconda 模块)。

然而,我正在从 jupyter 中尝试这个 - 所以希望这不是完全搞砸了只是 jupyter 中的 ipython 是如何做到的 - 虽然我不明白这是怎么回事

我确实通读了前面许多关于 savefig 的性质(令人困惑)的文章,并按照建议(以及最新的 savefig api 文档中所写)做了/尝试了所有事情。

特别是,我尝试了以下所有方法但没有成功:

  • 在 savefig() 调用中指定 facecolor(有/无透明度)
  • savefig.facecolor:我正在使用的样式 mpl 文件中的白色

  • 保存时 我的人物背景总是透明的 .

    谁能告诉我!@#$!# 我在这里错过了什么???

    代码

    这就是我正在使用的,无论我做什么,它都会吐出具有透明背景的图形。

    特别是下面的第二次调用(使用 savefig(..., transparent=False) )将使轴不透明 - 但人物本身还是透明的! )
    import numpy as np
    import matplotlib as mpl
    import matplotlib.style as style

    a = np.array([-3.2, 0.1, 1.5, 3.3, 8.5])
    b = np.array([1.1, 1.8, 1.95, 2.3, 4.3])
    labels = ['a', 'bc', 'def', 'g', 'ggghhh']

    stylefile = './util/plot_config/aqs_default.mplstyle'
    # the file above does contain an entry of:
    # savefig.facecolor: white
    #
    to_res = 1024
    dpi = 100
    inches = (to_res/dpi, to_res/dpi)

    style.use(stylefile)
    %matplotlib

    fig = mpl.figure.Figure(figsize=inches, dpi=dpi, facecolor='white')
    ax = fig.subplots()

    for x, y, l in zip(a,b,labels):
    ax.scatter(x,y,label=l)
    ax.legend()
    ax.set_xlabel('Some x')
    ax.set_ylabel('Attenuation $\mu$ (cm$^{-1}$)')

    ax.set_title('blah', y=1.03)
    fig.suptitle('Linearity $\mu$')

    # for me, _both_ calls below result in the figure having a transparent background:

    fig.savefig('a.png', facecolor=fig.get_facecolor(), transparent=True)
    fig.savefig('b.png', facecolor=fig.get_facecolor(), transparent=False)

    最佳答案

    不幸的是,似乎 frameon从 matplotlib 3.3 开始不再支持。
    我通过设置 facecolor='white', transparent=False 解决了透明度问题savefig() 中的选项

    关于python - Matplotlib savefig 背景总是透明的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59204749/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com