【问题标题】:Pyplot contour plot - clabel spacingPyplot 等高线图 - clabel 间距
【发布时间】:2015-01-28 22:34:35
【问题描述】:

我在使用 matplotlib/pyplot/basemap 时遇到问题。我在地图上绘制等高线(气压)。我使用 clabel 来显示等高线的值。 但问题是:值和等高线之间的填充太多。我找到了参数“inline_spacing”,我已将其设置为零。但仍有很多可用空间。有什么想法吗?

Python 代码:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import pygrib

filename   = "file.grib2"
grbs       = pygrib.open('/data/' + filename)
grb        = grbs[2]
data       = grb.values
datac      = data*0.01
lats, lons = grb.latlons()

fig = plt.figure()
m = Basemap(projection='stere',lon_0=5,lat_0=90.0,\
            llcrnrlon=-25.0,urcrnrlon=60.0,llcrnrlat=30.0,urcrnrlat=60.0,resolution='l')

x, y = m(lons, lats)

levs = range(940,1065,5)
S1=plt.contour(x,y,datac,levs,linewidths=0.5,colors='b')
plt.clabel(S1,inline=1,inline_spacing=0,fontsize=8,fmt='%1.0f',colors='b')

m.drawmapboundary(fill_color='w')
m.drawcoastlines(linewidth=0.2)

plt.savefig('test.png', bbox_inches='tight',pad_inches=0.05, dpi=100)

谢谢。

【问题讨论】:

  • 分享您当前的代码(编辑您的帖子)以获得更多帮助
  • 获得任何帮助 ;)
  • 您能否添加一个屏幕截图,以便我们轻松查看您遇到的问题?
  • 嗨,sebix。我添加了截图

标签: python matplotlib matplotlib-basemap


【解决方案1】:

“inline_spacing”参数可以设置为负值。它给了我一个警告,但尝试 -2 或 -3 应该可以解决你的问题。

【讨论】:

    【解决方案2】:
    cb = plt.clabel(S1,inline=1,inline_spacing=0,fontsize=8,fmt='%1.0f',colors='b')
    [txt.set_bbox(dict(boxstyle='square,pad=0',fc='red')) for txt in cb]
    

    Matplotlib Text 类创建一个 bbox。您需要设置pad = 0。然后inline_spacing 有效。

    参考Question!

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 1970-01-01
      • 2017-09-18
      • 2015-08-09
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      相关资源
      最近更新 更多