1
____USA.csv____
lats, long, users
37.3264, -117.1416, 5334,
37.3264, -117.1416, 435,
가 지금은 세계지도에서 미국에이 데이터를 표시하려면이 형식으로 5 개국에 대한 데이터를 가지고있다. 나는 이것을 시도했다.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
# read input csv file
filename = 'D:/22_sept_14/USA.csv'
lats=[]
lons=[]
population=[]
with open(filename) as f:
reader = csv.reader(f)
for row in reader:
lats.append(float(row[0]))
lons.append(float(row[1]))
population.append(float(row[2]))
map = Basemap(projection='robin', resolution = 'l', area_thresh = 1000.0,
lat_0=0, lon_0=-130)
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color = 'gray')
map.drawmapboundary()
map.drawmeridians(np.arange(0, 360, 30))
map.drawparallels(np.arange(-90, 90, 30))
min_marker_size = 2.5
for lon, lat,pop in zip(lons, lats, population):
x,y = map(lon, lat)
if pop>1000:
color='ro'
elif pop<1000:
color='yo'
msize = pop * .01* min_marker_size
map.plot(x, y, color, markersize=msize,alpha=.3)
plt.show()
그러나이 방법은 데이터를 "원"으로 표시하는 것이 문제입니다. 내가 원했던 것은 정량적 인 정보/"숫자"(데이터에 비례 한 글자 크기)로이 서클을 채우는 것입니다. 어떻게해야합니까? 테스트 목적으로
나는 (위의 코드에서 두 번째 마지막 줄)을 map.plot 전에이 라인
plt.text(lon,lat,'59%',fontsize=34,fontweight='bold',ha='center',va='center',color='b')
그러나 심지어이 나던 도움말 등 시도 나는 코드에서 위의 줄을 포함 마자 때문에 이 줄 map.plot(x, y, color, markersize=msize,alpha=.3)
은 출력을 제공하지 않습니다. 대신 내가 볼 수있는 것은 "59 %"라는 텍스트뿐입니다. 나는 그려진 원이나 그 텍스트 (59 %)를 가질 수 있습니다. 그러나 둘 다 함께는 아닙니다. 왜 이런 일이 일어나는 걸까요?