Python绘制等高线

下面是绘制的效果
在这里插入图片描述
这里是绘制的代码

# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 计算x,y坐标对应的高度值
def f(x,y):
#the height function
    return x * x + y * y
 
# 生成x,y的数据
x = np.linspace(-3, 3, 7)
y = np.linspace(-3, 3, 7)
print("x=",x)
print("y=",y)

# 把x,y数据生成mesh网格状的数据,因为等高线的显示是在网格的基础上添加上高度值
X, Y = np.meshgrid(x, y)
print("X=",X)
print("Y=",Y)
 
# 填充等高线
c = plt.contour(X, Y, f(X, Y))
print("Z=",f(X, Y))

# 等高线标签
plt.clabel(c,inline=True,fontsize=10)
# 显示图表
plt.show()

输出控制台的数据

x= [-3. -2. -1.  0.  1.  2.  3.]
y= [-3. -2. -1.  0.  1.  2.  3.]
X= [[-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]
 [-3. -2. -1.  0.  1.  2.  3.]]
Y= [[-3. -3. -3. -3. -3. -3. -3.]
 [-2. -2. -2. -2. -2. -2. -2.]
 [-1. -1. -1. -1. -1. -1. -1.]
 [ 0.  0.  0.  0.  0.  0.  0.]
 [ 1.  1.  1.  1.  1.  1.  1.]
 [ 2.  2.  2.  2.  2.  2.  2.]
 [ 3.  3.  3.  3.  3.  3.  3.]]
Z= [[18. 13. 10.  9. 10. 13. 18.]
 [13.  8.  5.  4.  5.  8. 13.]
 [10.  5.  2.  1.  2.  5. 10.]
 [ 9.  4.  1.  0.  1.  4.  9.]
 [10.  5.  2.  1.  2.  5. 10.]
 [13.  8.  5.  4.  5.  8. 13.]
 [18. 13. 10.  9. 10. 13. 18.]]

通过数据可以看出,越靠边缘的数据越大,最小的数位于中间

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值