网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
(0,1)-----(1,1)-----(2,1)
(0,0)-----(1,0)-----(2,0)
将其`x`轴和`y`轴坐标分开表示:
x轴:
[[0, 1, 2],
[0, 1, 2],
[0, 1, 2]]
y轴:
[[0, 0, 0],
[1, 1, 1],
[2, 2, 2]]
在`numpy`中可以使用`np.meshgrid()`来生成网格点:
import numpy as np
import matplotlib.pyplot as plt
10x10
x = np.linspace(-1.5, 1.5, num=10)
y = np.linspace(-1.5, 1.5, num=10)
generate grid
X, Y = np.meshgrid(x, y)
plt.plot(X, Y, marker=‘.’, linestyle=‘’)
plt.grid(True)
plt.show()

### 2. 等高线
绘制等高线需要的数据有点的坐标位置`(x, y)`以及坐标的高度`z`,高度`z`就是将坐标点`(x, y)`带入函数
f
(
x
,
y
)
f(x, y)
f(x,y)中计算得到的,在`matplotlib`中可以使用`plt.contour()`来绘制:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)
fig = plt.figure()
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)
draw
ax = plt.contour(X, Y, f, levels=10, cmap=plt.cm.cool)
add label
plt.clabel(ax, inline=True)
plt.savefig(‘img1.png’)
plt.show()

add color
plt.contourf(X, Y, f, levels=10, cmap=plt.cm.cool)
plt.colorbar()
plt.savefig(‘img1.png’)
plt.show()

>
> 更多的`api`参数请参考[官方文档]( )。
>
>
>
### 3. 三维图像
函数的三维图像的绘制需要的数据与等高线一样,即坐标位置`(x, y)`以及坐标的高度`z`,在`matplotlib`中可以使用`mpl_toolkits.mplot3d`来绘制:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)
fig = plt.figure()
ax = Axes3D(fig)
ax.set_xlabel(‘X’)
ax.set_ylabel(‘Y’)
ax.set_zlabel(‘Z’)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)
ax.plot_surface(X, Y, f, cmap=plt.cm.cool)
plt.savefig(‘img1.png’)
plt.show()




>
> 有关`mpl_toolkits.mplot3d`的使用可以参考[官方文档]( );
>
>


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.youkuaiyun.com/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.youkuaiyun.com/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**