python数据处理与科学计算_Python科学计算与数据处理.ppt

subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None) * ?v?t??siz * 绘图函数简介 * import numpy as np import matplotlib.pyplot as plt y, x = np.ogrid[-2:2:200j, -3:3:300j] z = x * np.exp( - x**2 - y**2) extent = [np.min(x), np.max(x), np.min(y), np.max(y)] plt.figure(figsize=(10,4)) plt.subplot(121) cs = plt.contour(z, 10, extent=extent) plt.clabel(cs) plt.subplot(122) plt.contourf(x.reshape(-1), y.reshape(-1), z, 20) plt.show() 绘图函数简介 为了更淸楚地区分X轴和Y轴,这里让它们的取值范围和等分次数均不相同.这样得 到的数组z的形状为(200, 300),它的第0轴对应Y轴、第1轴对应X轴。 调用contour()绘制数组z的等值线图,第二个参数为10,表示将整个函数的取值范围等 分为10个区间,即显示的等值线图中将有9条等值线。和imshow()一样,可以使用extent参 数指定等值线图的X轴和Y轴的数据范围。contour()所返回的是一个QuadContourSet对象, 将它传递给clabel(),为其中的等值线标上对应的值。 * 绘图函数简介 调用contourf(),绘制将取值范围等分为20份、带填充效果的等值线图。这里演示 了另外一种设置X、Y轴取值范围的方法。它的前两个参数分别是计算数组z时所使用的X轴和Y轴上的取样点,这两个数组必须是一维的。 * 绘图函数简介 还可以使用等值线绘制隐函数曲线. 显然,无法像绘制一般函数那样,先创建一个等差数组表示变量的取值点,然后计算出数组中每个x所对应的y值。可以使用等值线解决这个问题,显然隐函数的曲线就是值等于0的那条等值线。下面的程序绘制函数 在f(x,y)=0和 f(x,y)-0.1 = 0时的曲线. (matplotlib_implicit_func.py) * import numpy as np import matplotlib.pyplot as plt y, x = np.ogrid[-1.5:1.5:200j, -1.5:1.5:200j] f = (x**2 + y**2)**4 - (x**2 - y**2)**2 绘图函数简介 * plt.figure(figsize=(9,4)) plt.subplot(121) extent = [np.min(x), np.max(x), np.min(y), np.max(y)] cs = plt.contour(f, extent=extent, levels=[0, 0.1], colors=["b", "r"], linestyles=["solid", "dashed"], linewidths=[2, 2]) plt.subplot(122) for c in cs.collections: data = c.get_paths()[0].vertices plt.plot(data[:,0], data[:,1], color=c.get_color()[0], linewidth=c.get_linewidth()[0]) plt.show() 绘图函数简介 * 绘图函数简介 在调用contour()绘制等值线时,可以通过levels参数指定所绘制等值线对应的函数值,这 里设置levels参数为[0,0.1],因此最终将绘制两条等值线。 观察图会发现,表示隐函数f(x)=0蓝色实线并不是完全连续的,在图的中间部分它由许多孤立的小段构成。因为等值线在原点附近无限靠近,因此无论对函数f的取值空间如何进行细分,总是会有无法分开的地方,最终造成了图中的那些孤立的细小区域。而表示隐函数f(x,y)-0.1=0的红色虚线则是闭合且连续的。 * 绘图函数简介 可以通过contour()返回的对象获得等值线上每点的数据,下面在IPython中观

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值