File: plotcities.py

package info (click to toggle)
basemap 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 213,536 kB
  • sloc: python: 11,826; sh: 45; makefile: 41
file content (27 lines) | stat: -rw-r--r-- 869 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from __future__ import (absolute_import, division, print_function)

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap as Basemap
prctile_rank = lambda x, p: np.searchsorted(np.percentile(x, np.atleast_1d(p)), x)

# cities colored by population rank.

m = Basemap()
shp_info = m.readshapefile('cities','cities')
x, y, pop = [], [], []
for item, (x_i, y_i) in zip(m.cities_info, m.cities):
    population = item['POPULATION']
    if population >= 0:
        pop.append(population)
        x.append(x_i)
        y.append(y_i)
popranks = prctile_rank(pop,np.linspace(0, 100, 101))
colors = []
for rank in popranks:
    colors.append(plt.cm.jet(float(rank)/100.))
m.drawcoastlines()
m.fillcontinents()
m.scatter(x,y,25,colors,marker='o',edgecolors='none',zorder=10)
plt.title('City Locations colored by Population Rank')
plt.show()