爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7657|回复: 4

[求助] 【已解决】basemap下的兰伯特投影加入文字的位置

[复制链接]

新浪微博达人勋

发表于 2022-1-18 20:40:04 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 南瓜是我 于 2022-1-20 14:57 编辑

Basemap下使用兰伯特投影,请问要怎么改变文字的位置呢?无论我位置的数字写了啥,都一直在这个位置...uu们救救我


                               
登录/注册后可看大图


代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import matplotlib as mpl
import netCDF4 as nc
from numpy import *
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

fig = plt.figure(figsize=(15,15),dpi=300)
plt.rcParams['font.family'] = 'SimHei'
ax11 = fig.add_subplot(111)
m = Basemap(llcrnrlon = 72, # ll 左下,ur 右上
    llcrnrlat = 45,
    urcrnrlon = 207,
    urcrnrlat = 60,
    projection = 'lcc',
    lat_0 = 52.5,
    lon_0 = 125,
    resolution='i',area_thresh=3000,
    )
m.drawcoastlines(linewidth=0.6)
m.drawlsmask(land_color= '0.97')

ax11.text(-20,-60,'(a)',fontsize=20)
ax11.text(80,80,"位置",fontsize=28,rotation=90)
ax11.text(800,800,"11111",fontsize=28)
plt.show


                               
登录/注册后可看大图


结果:





微信图片_20220118204118.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-1-19 08:50:56 | 显示全部楼层
代码贴全,没有上下文,不知道你怎么配置投影的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-1-19 16:52:22 | 显示全部楼层
betasy 发表于 2022-1-19 08:50
代码贴全,没有上下文,不知道你怎么配置投影的

已更新代码,就是不知道为什么上传后格式不太对麻烦您帮忙看看怎么改插入文字的位置,谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-19 23:00:58 | 显示全部楼层
Basemap使用了兰伯特投影之后,整个画布的坐标变为了兰伯特投影定义的坐标系,因此文字的位置需要按照兰伯特坐标来表示。
  1. import matplotlib.pyplot as plt
  2. from mpl_toolkits.basemap import Basemap
  3. fig = plt.figure(figsize=(4,3),dpi=300)
  4. ax = fig.add_subplot(111)

  5. m = Basemap(llcrnrlon = 72, # ll 左下,ur 右上
  6.     llcrnrlat = 45,
  7.     urcrnrlon = 207,
  8.     urcrnrlat = 60,
  9.     projection = 'lcc',
  10.     lat_0 = 52.5,
  11.     lon_0 = 125,
  12.     resolution='i',area_thresh=3000,
  13.     )
  14. m.drawcoastlines(linewidth=0.6)
  15. m.drawlsmask(land_color= '0.97')
  16. ax.text(2e6,2e6,"TEST:2e6,2e6", c='red')
  17.     #xx1,yy1 = m(d1.lon,d1.lat)
  18. plt.show()
复制代码
还是建议换到Cartopy了,Basemap的功能以后都会被Cartopy替代
Snipaste_2022-01-19_23-00-31.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-1-20 14:53:18 | 显示全部楼层
betasy 发表于 2022-1-19 23:00
Basemap使用了兰伯特投影之后,整个画布的坐标变为了兰伯特投影定义的坐标系,因此文字的位置需要按照兰伯 ...

好的好的,非常感谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表