本文整理汇总了Python中matplotlib.toolkits.basemap.Basemap.scatter方法的典型用法代码示例。如果您正苦于以下问题:Python Basemap.scatter方法的具体用法?Python Basemap.scatter怎么用?Python Basemap.scatter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类matplotlib.toolkits.basemap.Basemap
的用法示例。
在下文中一共展示了Basemap.scatter方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: draw_graph_on_map
# 需要导入模块: from matplotlib.toolkits.basemap import Basemap [as 别名]
# 或者: from matplotlib.toolkits.basemap.Basemap import scatter [as 别名]
def draw_graph_on_map(g, node2weight, node2pos, pic_title, pic_area=[-130,10,140,70], output_fname_prefix=None, need_draw_edge=0):
"""
2007-09-13
identity_pair_ls is a list of pairs of strains (ecotype id as in table ecotype)
2007-10-08
correct a bug in 4*diameter_ls, diameter_ls has to be converted to array first.
sqrt the node weight, 8 times the original weight
"""
import os, sys
sys.stderr.write("Drawing graph on a map ...\n")
import pylab, math
from matplotlib.toolkits.basemap import Basemap
pylab.clf()
fig = pylab.figure()
fig.add_axes([0.05,0.05,0.9,0.9]) #[left, bottom, width, height]
m = Basemap(llcrnrlon=pic_area[0],llcrnrlat=pic_area[1],urcrnrlon=pic_area[2],urcrnrlat=pic_area[3],\
resolution='l',projection='mill', ax=pylab.gca())
sys.stderr.write("\tDrawing nodes ...")
euc_coord1_ls = []
euc_coord2_ls = []
diameter_ls = []
for n in g.nodes():
lat, lon = node2pos[n]
euc_coord1, euc_coord2 = m(lon, lat) #longitude first, latitude 2nd
euc_coord1_ls.append(euc_coord1)
euc_coord2_ls.append(euc_coord2)
diameter_ls.append(math.sqrt(node2weight[n]))
import numpy
diameter_ls = numpy.array(diameter_ls)
m.scatter(euc_coord1_ls, euc_coord2_ls, 8*diameter_ls, marker='o', color='r', alpha=0.4, zorder=12, faceted=False)
sys.stderr.write("Done.\n")
if need_draw_edge:
sys.stderr.write("\tDrawing edges ...")
ax=pylab.gca()
for popid1, popid2, no_of_connections in g.edges():
lat1, lon1 = node2pos[popid1]
lat2, lon2 = node2pos[popid2]
x1, y1 = m(lon1, lat1)
x2, y2 = m(lon2, lat2)
ax.plot([x1,x2],[y1,y2], 'g', linewidth=math.log(no_of_connections+1)/2, alpha=0.2, zorder=10)
sys.stderr.write("Done.\n")
#m.drawcoastlines()
m.drawparallels(pylab.arange(-90,90,30), labels=[1,1,0,1])
m.drawmeridians(pylab.arange(-180,180,30), labels=[1,1,0,1])
m.fillcontinents()
m.drawcountries()
m.drawstates()
pylab.title(pic_title)
if output_fname_prefix:
pylab.savefig('%s.eps'%output_fname_prefix, dpi=600)
pylab.savefig('%s.svg'%output_fname_prefix, dpi=600)
pylab.savefig('%s.png'%output_fname_prefix, dpi=600)
del fig, m, pylab
sys.stderr.write("Done.\n")
示例2: draw_clustered_strain_location
# 需要导入模块: from matplotlib.toolkits.basemap import Basemap [as 别名]
# 或者: from matplotlib.toolkits.basemap.Basemap import scatter [as 别名]
def draw_clustered_strain_location(self, label_ls, weighted_pos_ls, diameter_ls, label_type, label_type2label_name, pic_area=[-180,-90,180,90], output_fname_prefix=None, label_name=None):
"""
2007-07-11
draw populations derived from connected_components of the strain network
#each pie denotes a population, with diameter proportional to the size of the population
#each pie labeled with the number of strains in that population
2007-07-13
use popid as label
2007-07-17
no parallels, no meridians
2007-08-29
copied from CreatePopulation.py
2007-09-11
add label name
2007-10-14
correct a bug in 5*diameter_ls. diameter_ls has to an array
"""
sys.stderr.write("Drawing population map...")
import pylab
from matplotlib.toolkits.basemap import Basemap
pylab.clf()
fig = pylab.figure()
fig.add_axes([0.05,0.05,0.9,0.9]) #[left, bottom, width, height]
m = Basemap(llcrnrlon=pic_area[0],llcrnrlat=pic_area[1],urcrnrlon=pic_area[2],urcrnrlat=pic_area[3],\
resolution='l',projection='mill')
euc_coord1_ls = []
euc_coord2_ls = []
ax=pylab.gca()
for i in range(len(weighted_pos_ls)):
lat, lon = weighted_pos_ls[i]
euc_coord1, euc_coord2 = m(lon, lat) #longitude first, latitude 2nd
euc_coord1_ls.append(euc_coord1)
euc_coord2_ls.append(euc_coord2)
ax.text(euc_coord1, euc_coord2, str(label_ls[i]), size=5, alpha=0.5, horizontalalignment='center', verticalalignment='center', zorder=12)
import numpy
diameter_ls = numpy.array(diameter_ls)
m.scatter(euc_coord1_ls, euc_coord2_ls, 5*diameter_ls, marker='o', color='r', alpha=0.3, zorder=10, faceted=False)
#m.drawcoastlines()
m.drawparallels(pylab.arange(-90,90,30), labels=[1,1,0,1]) #labels intersect the left, right, top bottom of the plot
m.drawmeridians(pylab.arange(-180,180,30), labels=[1,1,0,1])
m.fillcontinents()
m.drawcountries()
m.drawstates()
pylab.title("worldwide distribution of %s populations, labeled by %s"%(len(weighted_pos_ls), label_type2label_name[label_type]))
if output_fname_prefix:
pylab.savefig('%s_pop_map.eps'%output_fname_prefix, dpi=300)
pylab.savefig('%s_pop_map.svg'%output_fname_prefix, dpi=300)
pylab.savefig('%s_pop_map.png'%output_fname_prefix, dpi=300)
del m, pylab, Basemap
sys.stderr.write("Done.\n")
示例3: m
# 需要导入模块: from matplotlib.toolkits.basemap import Basemap [as 别名]
# 或者: from matplotlib.toolkits.basemap.Basemap import scatter [as 别名]
# transform lons and lats to map coordinates.
x,y = m(array(lons_out)/d2r, array(lats_out)/d2r)
# find just those points in map region.
xx=[]
yy=[]
for xi,yi in zip(x,y):
if (xi>m.llcrnrx and xi<m.urcrnrx) and (yi>m.llcrnry and yi<m.urcrnry):
xx.append(xi)
yy.append(yi)
# plot them as filled circles on the map.
# first, create figure with same aspect ratio as map.
fig=m.createfigure()
# background color will be used for 'wet' areas.
fig.add_axes([0.1,0.1,0.8,0.8],axisbg='aqua')
# use zorder=10 to make sure markers are drawn last.
# (otherwise they are covered up when continents are filled)
m.scatter(xx,yy,marker='o',c='k',s=25,zorder=10)
# draw coasts and fill continents.
m.drawcoastlines(linewidth=0.5)
m.fillcontinents(color='coral')
# draw parallels and meridians.
delat = 20.
circles = arange(0.,90.,delat).tolist()+\
arange(-delat,-90,-delat).tolist()
m.drawparallels(circles)
delon = 45.
meridians = arange(0,360,delon)
m.drawmeridians(meridians,labels=[1,1,1,1])
title('Randomly Spaced Locations (Min Dist = %g km, %g points)'% (rcrit,len(lons_out)),y=1.075)
show()
示例4: uniform
# 需要导入模块: from matplotlib.toolkits.basemap import Basemap [as 别名]
# 或者: from matplotlib.toolkits.basemap.Basemap import scatter [as 别名]
v = uniform(0.0, 1.0, size=npts)
z = uniform(0.0, 1.0, size=npts)
except: # this works for Numeric/numarray
u = uniform(0.0, 1.0, shape=npts)
v = uniform(0.0, 1.0, shape=npts)
z = uniform(0.0, 1.0, shape=npts)
lons = 360.0 * u
lats = (180.0 / math.pi) * arccos(2 * v - 1) - 90.0
# transform lons and lats to map coordinates.
x, y = m(lons, lats)
# plot them as filled circles on the map.
# first, create a figure.
fig = figure()
# background color will be used for 'wet' areas.
fig.add_axes([0.1, 0.1, 0.8, 0.8], axisbg="aqua")
# use zorder=10 to make sure markers are drawn last.
# (otherwise they are covered up when continents are filled)
m.scatter(x, y, 25, z, cmap=cm.jet, marker="o", faceted=False, zorder=10)
# draw coasts and fill continents.
m.drawcoastlines(linewidth=0.5)
m.fillcontinents(color="coral")
# draw parallels and meridians.
delat = 20.0
circles = arange(0.0, 90.0, delat).tolist() + arange(-delat, -90, -delat).tolist()
m.drawparallels(circles)
delon = 45.0
meridians = arange(0, 360, delon)
m.drawmeridians(meridians, labels=[1, 1, 1, 1])
title("Random Points", y=1.075)
show()