Gia*_*azi 2 python polygon matplotlib
我必须使用 mathplotlib 在 Python 中绘制一个三角形。
这就是它最终的样子:

我的目标是,一旦绘制了三角形,就在其上绘制一些点。
目前我可以很好地绘制三角形:
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
ax.add_patch(Polygon([[0,0],[0,1],[1,0]], closed=True,fill=True))
ax.set_xlim((0,1))
ax.set_ylim((0,1))
plt.show()
Run Code Online (Sandbox Code Playgroud)
但我只能用纯色填充它。如何添加如图所示的渐变?
有人能帮我吗?
matplotlib 页面上有一个示例,显示了如何为图像使用剪辑路径。
将此适应您的情况将给出:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.path import Path
from matplotlib.patches import PathPatch
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
path = Path([[0,0],[0,1],[1,0],[0,0]])
patch = PathPatch(path, facecolor='none')
ax.add_patch(patch)
Z, Z2 = np.meshgrid(np.linspace(0,1), np.linspace(0,1))
im = plt.imshow(Z-Z2, interpolation='bilinear', cmap=plt.cm.RdYlGn,
origin='lower', extent=[0, 1, 0, 1],
clip_path=patch, clip_on=True)
im.set_clip_path(patch)
ax.set_xlim((0,1))
ax.set_ylim((0,1))
plt.show()
Run Code Online (Sandbox Code Playgroud)