如何在底图中绘制圆或添加artiste [英] How to draw circle in basemap or add artiste

查看:95
本文介绍了如何在底图中绘制圆或添加artiste的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何使用纬度和经度绘制带有底图的圆.

I want to know how can i plot a circle with Basemap using latitude and longitude.

import matplotlib.pyplot as plt
fig,ax = plt.subplots()
ax.axis([0,10,0,10])
circle1 = plt.Circle((5, 5), 2, color='black',fill=False)
x = ax.add_artist(circle1)
plt.show()

我想做同样的事情,但是在底图图形中使用x,y,半径作为lon lat

I want to do the same but with x,y,radius as lon lat in my basemap graph

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

m = Basemap(projection="mill", #miller est une projection connu
    llcrnrlat =0,#lower left corner latitude
    llcrnrlon =0,
    urcrnrlat =10, #upper right lat
    urcrnrlon =10,
    resolution = "l") #c croud par defaut, l low , h high , f full 
m.drawcoastlines() #dessiner les lignes
m.drawcountries()
m.drawstates()
m.drawcounties(color="b")
#m.fillcontinents() #colorier les payes
#m.etopo()

x,y=m(5,5)
m.plot(x,y,"o")
plt.show()

推荐答案

已经准备好两个代码,您可以将一个代码复制到另一个代码中.唯一的问题可能是圆半径需要在地图坐标中计算,

Having the two codes ready you can just copy the one into the other. The only problem may be that the circle radius needs to be calculated in map coordinates,

r = 2
x,y=m(5,5)
x2,y2 = m(5,5+r) 
circle1 = plt.Circle((x, y), y2-y, ..)

完整示例:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

fig,ax = plt.subplots()

m = Basemap(projection="mill", #miller est une projection connu
    llcrnrlat =0,#lower left corner latitude
    llcrnrlon =0,
    urcrnrlat =10, #upper right lat
    urcrnrlon =10,
    resolution = "l", ax=ax) #c croud par defaut, l low , h high , f full 
m.drawcoastlines() #dessiner les lignes
m.drawcountries()
m.drawstates()
m.drawcounties(color="b")

x,y=m(5,5)
x2,y2 = m(5,5+2) 
circle1 = plt.Circle((x, y), y2-y, color='black',fill=False)
ax.add_patch(circle1)
plt.show()

这篇关于如何在底图中绘制圆或添加artiste的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆