【问题标题】:Changing image background colour in matplotlib Basemap ortho projection在 matplotlib 底图正射投影中更改图像背景颜色
【发布时间】:2014-11-23 19:38:31
【问题描述】:

我可以在 Python 中使用matplotlibBasemap 来绘制一个地球仪,我可以设置地球仪的颜色以及我在其上绘制的任何东西(大陆等)。但是这个地球仪图像设置在白色背景上;如何更改白色背景的颜色?

这样的代码:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
m = Basemap(projection='ortho',lat_0=0,lon_0=0,resolution='c')
m.drawmapboundary(fill_color='black')
m.drawcoastlines(linewidth=1.25, color='#006600')
plt.savefig('/tmp/out.png')

产生这个,我想改变白色背景

【问题讨论】:

    标签: python matplotlib matplotlib-basemap


    【解决方案1】:

    您可以使用以下方法做到这一点:

    import matplotlib
    import matplotlib.pyplot as plt
    from mpl_toolkits.basemap import Basemap
    import matplotlib.pyplot as plt
    
    matplotlib.use('Agg')
    fig = plt.figure()
    fig.patch.set_facecolor('blue')
    fig.patch.set_alpha(0.7)
    ax = fig.add_subplot(111)
    
    m = Basemap(projection='ortho',lat_0=0,lon_0=0,resolution='c',ax=ax)
    m.drawmapboundary(fill_color='black')
    m.drawcoastlines(linewidth=1.25, color='#006600')
    plt.savefig('Desktop/out.png',facecolor="red", edgecolor="blue")
    

    当您使用 'plt.show()' 显示它时,这会创建一个蓝色背景的绘图,但保存的地图图像具有红色背景。这是因为您使用不同的功能将图像渲染到不同的设备。更多细节可以在herehere找到。希望这可以帮助。 T

    【讨论】:

    • 很好的答案,但是使用fig.patch.set_facecolor('blue') 将颜色设置为蓝色不是必需的,并且会引起一些混乱。还是我错过了这样做的原因?
    • @snake_charmer 我同意它没有必要。我只是想表明有几种方法可以实现为背景着色的结果。也许我应该删除它以避免混淆。
    • 同时拥有这两种方法是有价值的,只要它们清楚地显示为两个不同的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 2021-09-30
    • 2014-10-04
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多