如何使用 matplotlib (python) colah 的变形网格进行绘图?
How to plot using matplotlib (python) colah's deformed grid?
我需要在 Python 中创建可视化效果,就像 colah 在他的网站上所做的那样。但是,我在 matplotlib 上找不到任何与他所做的完全一样的网格失真 here。如果可以,请帮助我。
这是我要执行的剧情:
我猜图像是通过向网格添加一些高斯函数生成的。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
def plot_grid(x,y, ax=None, **kwargs):
ax = ax or plt.gca()
segs1 = np.stack((x,y), axis=2)
segs2 = segs1.transpose(1,0,2)
ax.add_collection(LineCollection(segs1, **kwargs))
ax.add_collection(LineCollection(segs2, **kwargs))
ax.autoscale()
f = lambda x,y : ( x+0.8*np.exp(-x**2-y**2),y )
fig, ax = plt.subplots()
grid_x,grid_y = np.meshgrid(np.linspace(-3,3,20),np.linspace(-3,3,20))
plot_grid(grid_x,grid_y, ax=ax, color="lightgrey")
distx, disty = f(grid_x,grid_y)
plot_grid(distx, disty, ax=ax, color="C0")
plt.show()
我需要在 Python 中创建可视化效果,就像 colah 在他的网站上所做的那样。但是,我在 matplotlib 上找不到任何与他所做的完全一样的网格失真 here。如果可以,请帮助我。
这是我要执行的剧情:
我猜图像是通过向网格添加一些高斯函数生成的。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
def plot_grid(x,y, ax=None, **kwargs):
ax = ax or plt.gca()
segs1 = np.stack((x,y), axis=2)
segs2 = segs1.transpose(1,0,2)
ax.add_collection(LineCollection(segs1, **kwargs))
ax.add_collection(LineCollection(segs2, **kwargs))
ax.autoscale()
f = lambda x,y : ( x+0.8*np.exp(-x**2-y**2),y )
fig, ax = plt.subplots()
grid_x,grid_y = np.meshgrid(np.linspace(-3,3,20),np.linspace(-3,3,20))
plot_grid(grid_x,grid_y, ax=ax, color="lightgrey")
distx, disty = f(grid_x,grid_y)
plot_grid(distx, disty, ax=ax, color="C0")
plt.show()