python不等比等值线实现

import numpy as np
import matplotlib.pyplot as plt
dx=1
dy=1
x=np.arange(-2.0,2.0,dx)#
y=np.arange(-3.0,3.0,dy)#这里的x,y是长度不相等的列表
X,Y=np.meshgrid(x,y)
def f(x,y):
return(1-y5+x5)*np.exp(-x2-y2)
plt.grid(True)#显示网格
C=plt.contour(X,Y,f(X,Y),8,colors=‘black’) #生成等值线图
ct=plt.contourf(X,Y,f(X,Y),8)#填充等值线

plt.clabel(c,fontsize=10,colors=‘k’)#设置显示文字
plt.colorbar(ct)#设置颜色条,(显示在图片右边)

plt.show()

关键就是contour,与contourf这两个函数,如下面所示,这两个函数的三个参数的形状必须是相同的,如下图X、Y、f(X,Y)都是(6,4)。
>>> X
array([[-2., -1., 0., 1.],
[-2., -1., 0., 1.],
[-2., -1., 0., 1.],
[-2., -1., 0., 1.],
[-2., -1., 0., 1.],
[-2., -1., 0., 1.]])
>>> Y
array([[-3., -3., -3., -3.],
[-2., -2., -2., -2.],
[-1., -1., -1., -1.],
[ 0., 0., 0., 0.],
[ 1., 1., 1., 1.],
[ 2., 2., 2., 2.]])
>>> X.shape
(6, 4)
>>> Y.shape
(6, 4)
>>> f(X,Y)
array([[ 4.79189834e-04, 1.10321829e-02, 3.01119922e-02,
1.11229828e-02],
[ 3.35462628e-04, 2.15614304e-01, 6.04416083e-01,
2.29090198e-01],
[-2.02138410e-01, 1.35335283e-01, 7.35758882e-01,
4.06005850e-01],
[-5.67784806e-01, 0.00000000e+00, 1.00000000e+00,
7.35758882e-01],
[-2.15614304e-01, -1.35335283e-01, 0.00000000e+00,
1.35335283e-01],
[-2.11341456e-02, -2.15614304e-01, -5.67784806e-01,
-2.02138410e-01]])
>>> t=f(X,Y)
>>> t.shape
(6, 4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值