np.meshgrid()与网络表格

数组是如何绘制表格的?

我们先将两个数组传入np.meshgrid(),查看该函数是如何绘制网格的。

import numpy as np

x = np.linspace(-2, 2, 5)
y = np.linspace(-2, 2, 5)

X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2 - 1

print("X显示:","\n",X)
print("Y显示:","\n",Y)

输出的结果是:

X显示: 
 [[-2. -1.  0.  1.  2.]
 [-2. -1.  0.  1.  2.]
 [-2. -1.  0.  1.  2.]
 [-2. -1.  0.  1.  2.]
 [-2. -1.  0.  1.  2.]]
Y显示: 
 [[-2. -2. -2. -2. -2.]
 [-1. -1. -1. -1. -1.]
 [ 0.  0.  0.  0.  0.]
 [ 1.  1.  1.  1.  1.]
 [ 2.  2.  2.  2.  2.]]

通过观察我们发现,经过X, Y = np.meshgrid(x, y)操作,它将我们的x数据纵向复制了5份,而将Y 转置之后横向复制了5份。

分别绘制X和Y图像

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2, 2, 5)
y = np.linspace(-2, 2, 5)

X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2 - 1

print("X显示:","\n",X)
print("Y显示:","\n",Y)
plt.figure()
plt.plot(X, Y, color='red',marker='*',linestyle='--')
plt.grid(True)

X, Y = np.meshgrid(x, y,indexing='ij')
Z = X**2 + Y**2 - 1
plt.figure()
plt.plot(X, Y, color='red',marker='*',linestyle='--')
plt.grid(True)
plt.show()

绘制出来的结果显示为:
在这里插入图片描述
在这里插入图片描述

绘制等高线

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-2, 2, 5)
y = np.linspace(-2, 2, 5)


X, Y = np.meshgrid(x, y,indexing='ij')
Z = X**2 + Y**2 - 1
plt.figure()
plt.plot(X, Y, color='red',marker='*',linestyle='--')
plt.grid(True)

fig, (ax1, ax2) = plt.subplots(2)
ax1.contourf(X, Y, Z)
ax2.contour(X, Y, Z)  # 与contourf区别在于不同高度面不填充颜色


plt.figure()
ax = plt.gca()
cor = ax.contour(X, Y, Z, [-1, 0, 1, 3])
plt.clabel(cor, fontsize=10)
plt.grid(True)
plt.show()

图像显示如下:
在这里插入图片描述
在这里插入图片描述

参考:
https://blog.youkuaiyun.com/goodgoodstudyddp/article/details/106436558
https://blog.youkuaiyun.com/qq_38701868/article/details/99694048

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream_Bri

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值