Я построил фигуру с помощью matplotlib:
![enter image description here](https://i.stack.imgur.com/P6Aze.png)
И теперь я хотел бы, чтобы края фигуры отображали координаты, не просматривая их вручную и не используя краску, как на этом рисунке:
![enter image description here](https://i.stack.imgur.com/JVa0j.png)
Это мой код:
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
# setup Lambert Conformal basemap.
plt.figure(figsize=(20,10))
map = Basemap(width=400000,height=300500,projection='lcc',
resolution='h',lat_0=52.25,lon_0=4.5)#lat_1=50,lat_2=45
# draw coastlines.
# draw a boundary around the map, fill the background.
# this background will end up being the ocean color, since
# the continents will be drawn on top.
map.drawmapboundary(fill_color='turquoise')
# fill continents, set lake color same as ocean color.
map.fillcontinents(color='white',lake_color='turquoise')
map.drawcountries(linestyle='--')
map.drawmapscale(lon=6.5, lat=51.25, lon0=0, lat0=52, length=50)
lonA =np.loadtxt('AllStranding250Lon.txt',delimiter=',') ## [4.540377,4.173571,3.041619]
latA =np.loadtxt('AllStranding250Lat.txt',delimiter=',') # [52.395394,52.035414,51.286338]
AA=np.loadtxt('AllStranding250Numbers.txt',delimiter=',')
n=len(lonA)
m=len(latA)
print('m=', m)
print('n=',n)
SizeA=np.zeros(n)#number counted
q=len(SizeA)
print('q=',q)
x,y = map(lonA[0:7], latA[0:7])
z,a = map(lonA[7:9], latA[7:9])
for i in range (0,n):
if 250<=AA[i] <1000:
SizeA[i]=15
elif 1000 <= AA[i] < 5000:
SizeA[i]=25
elif 5000 <= AA[i] < 10000:
SizeA[i]=45
elif 10000<= AA[i]<50000:
SizeA[i]=65
elif 50000<= AA[i]<100000:
SizeA[i]=100
else:
SizeA[i]=200
map.scatter(x, y, s=SizeA, c='steelblue', marker='o', label = 'Aurelia aurita',zorder=2, edgecolors='k')
map.scatter(z, a, s=SizeA[7:9], c='coral', marker='v', label = 'Chrysaora hysoscella', zorder=2)
l2 = plt.scatter([],[], s=15,color='white', edgecolors='k')
l3 = plt.scatter([],[], s=25,color='white',edgecolors='k')
l4 = plt.scatter([],[], s=45,color='white', edgecolors='k')
l5 = plt.scatter([],[], s=65,color='white', edgecolors='k')
l6 = plt.scatter([],[], s=80,color='white', edgecolors='k')
l7 = plt.scatter([],[], s=200,color='white', edgecolors='k')
l8 = plt.scatter([],[], s=80,color='steelblue', edgecolors='k')
l9 = plt.scatter([],[], s=80,color='coral', marker = 'v', edgecolors='None')
labels = [ "250-1000", "1000-5 000", "5 000-10 000","10 000-50 000","50 000-100 000", "100 000<", 'Aurelia aurita','Chrysaora hysoscella']
plt.legend([ l2, l3, l4,l5,l6,l7,l8,l9], labels, frameon=True,
fontsize=12, handlelength=2, loc = 'upper left', borderpad = 1,
handletextpad=1,title ="Stranded medusa", scatterpoints = 1)#loc='upper center'
plt.savefig('AllStranding.png')
plt.show()
Я пытался использовать строку:
map.drawmeridians([],labels=[left,right,top,bottom])
Но тогда говорится, что он не знает «правильно», и я не хочу рисовать меридианы, я просто хочу 2 числа в каждом углу.
Заранее спасибо!