imag上的Matplotlib透明填充

2024-10-01 11:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用matplotlib在画布上的图像上绘制透明多边形:

canvas类中的代码:

def update_figure(self, dataOverride = None):
    if self.data is not None or dataOverride is not none:
        FigureCanvas.updateGeometry(self)
        self.axes.clear()
        if dataOverride is not None:
            self.axes.imshow(dataOverride, cmap = self.getColorMap())
        else:
            self.axes.imshow(self.data, cmap = self.getColorMap())
    self.draw()

我遇到问题的代码:

^{pr2}$

所以,我想用一个半透明的多边形代替imshow()的图片self.ui.画布2.轴。在

有什么建议吗??在

谢谢

泰勒·海米勒


Tags: 代码selfnonedataifmatplotlibis画布
1条回答
网友
1楼 · 发布于 2024-10-01 11:23:27

我不完全理解您的代码(请提供一个完全有效的示例),但以下代码将多边形放在imshow图像上:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon

data = np.random.rand(4, 4)
plt.imshow(data)

pointListX = (0, 2, 1)
pointListY = (0, 1, 3)
xyList = list(zip(pointListX, pointListY))  # `list` not necessary for python2
p = Polygon(xyList, alpha=0.2)
plt.gca().add_artist(p)

plt.show()

如果对象的堆叠有问题,也可以显式设置zorder参数。在

相关问题 更多 >