我试图在底图投影上绘制椭圆.要绘制像多边形一样的圆,有tissot用于绘制天梭的指标的函数,如下例所示.
from mpl_toolkits.basemap import Basemap
x0, y0 = 35, -50
R = 5
m = Basemap(width=8000000,height=7000000, resolution='l',projection='aea',
lat_1=-40.,lat_2=-60,lon_0=35,lat_0=-50)
m.drawcoastlines()
m.tissot(x0, y0, R, 100, facecolor='g', alpha=0.5)
Run Code Online (Sandbox Code Playgroud)
但是,我有兴趣在表单中绘制省略号(x-x0)**2/a**2 + (y-y0)**2/2 = 1.另一方面,要在常规笛卡尔网格上绘制省略号,我可以使用以下示例代码:
import pylab
from matplotlib.patches import Ellipse
fig = pylab.figure()
ax = pylab.subplot(1, 1, 1, aspect='equal')
x0, y0 = 35, -50
w, h = 10, 5
e = Ellipse(xy=(x0, y0), width=w, height=h, linewidth=2.0, color='g')
ax.add_artist(e)
e.set_clip_box(ax.bbox)
e.set_alpha(0.7)
pylab.xlim([20, 50])
pylab.ylim([-65, -35])
Run Code Online (Sandbox Code Playgroud)
有没有办法在底图投影上绘制省略号,其效果类似于tissot?
我在使用Matplotlib的箭袋情节时遇到了一些问题.给定速度矢量场,我想在流线上绘制速度矢量.矢量与预期的流函数不相切.
为了计算流函数,我使用了Pankratov博士的Matlab代码的Python翻译版本,可在http://www-pord.ucsd.edu/~matlab/stream.htm获得(我的很快将在GitHub上提供).
使用其结果,我使用此代码:
import numpy
import pylab
# Regular grid coordineates, velocity field and stream function
x, y = numpy.meshgrid(numpy.arange(0, 21), numpy.arange(0, 11))
u = numpy.array([[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30],
[ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29],
[ 8, 9, 10, 11, 12, 13, 14, 15, 16, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Scipy的RectBivariateSpline类来定期插入网格化的风应沙数据.在某些网格点,输入数据包含无效数据条目,这些条目设置为NaN值.首先,我使用了斯科特关于二维插值的问题的解决方案.使用我的数据,插值返回仅包含NaN的数组.假设我的数据是非结构化的并使用SmoothBivariateSpline类,我也尝试了一种不同的方法.显然我有太多的数据点来使用非结构化插值,因为数据数组的形状是(719 x 2880).
为了说明我的问题,我创建了以下脚本:
from __future__ import division
import numpy
import pylab
from scipy import interpolate
# The signal and lots of noise
M, N = 20, 30 # The shape of the data array
y, x = numpy.mgrid[0:M+1, 0:N+1]
signal = -10 * numpy.cos(x / 50 + y / 10) / (y + 1)
noise = numpy.random.normal(size=(M+1, N+1))
z = signal + noise
# Some holes …Run Code Online (Sandbox Code Playgroud)