python - 如何在 matplotlib 中绘制二维结构化网格
问题描述
我正在尝试使用 matplotlib 绘制结构化网格(见下图)
import numpy as np
import matplotlib.pyplot as plt
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
plt.scatter(x, y)
plt.show()
我有一个离散的点,但我不知道如何将它们连接起来得到这样的东西:
期望的结果是:
我很感激任何帮助
解决方案
我会为此使用两个 linecollections:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
plt.scatter(x, y)
segs1 = np.stack((x,y), axis=2)
segs2 = segs1.transpose(1,0,2)
plt.gca().add_collection(LineCollection(segs1))
plt.gca().add_collection(LineCollection(segs2))
plt.show()
另请参阅如何使用 matplotlib (python) colah 的变形网格进行绘图?
因为如果网格不变形,画一个单一的linecollection会更高效,比如
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
x, y = np.meshgrid(np.linspace(0,1, 11), np.linspace(0, 0.6, 7))
segs1 = np.stack((x[:,[0,-1]],y[:,[0,-1]]), axis=2)
segs2 = np.stack((x[[0,-1],:].T,y[[0,-1],:].T), axis=2)
plt.gca().add_collection(LineCollection(np.concatenate((segs1, segs2))))
plt.autoscale()
plt.show()
推荐阅读
- javascript - 自定义 UseLayoutEffect 钩子在 React 中为边界框计算触发了太多次
- python - pd.merge 未合并列值
- python-imaging-library - 如何解决安装 pil,cv2,requirements.txt 的这个错误?
- mongodb - Intellij/Datagrip 通过旧版 uuid 查询 mongo
- c++ - 不知道为什么我在使用 cin 和 getline 时遇到 C++ 错误
- php - 从文件读取时格式错误的 JSON
- python - 有没有办法在 sklearn 中存储管道阶段?
- decimal-point - 平原三点定向运算的数值稳定性
- sql - 如何为红移中字符串的唯一计数百分比?
- c - 这些示例中星号的含义