在绘图中放置矩形

时间:2017-12-18 14:22:38

标签: python matplotlib pyqt

对于这个问题,我指的是这个例子: https://matplotlib.org/examples/user_interfaces/embedding_in_qt5.html

我想用一个简单的矩形而不用坐标系来替换正弦图。

确切地说,我想更改原始代码的这一部分:

class MyStaticMplCanvas(MyMplCanvas):
    """Simple canvas with a sine plot."""

    def compute_initial_figure(self):
        t = arange(0.0, 3.0, 0.01)
        s = sin(2*pi*t)
        self.axes.plot(t, s)

我在Matplotlib中找到了矩形类: https://matplotlib.org/devdocs/api/_as_gen/matplotlib.patches.Rectangle.html#examples-using-matplotlib-patches-rectangle

这应该是一项简单的任务。但是我在没有成功的情况下自己尝试了很多。我的许多尝试之一看起来像:(但它不起作用)

class MyStaticMplCanvas(MyMplCanvas):
    """Simple canvas with a rectangle plot."""
    def compute_initial_figure(self):
        x = 10
        y = 20
        width = 10
        height = 20

        fig,ax = plt.subplots(1)
        rect = mpatches.Rectangle((x, y), width, height)

        ax.add_patch(rect)
        self.axes.plot(rect)

有人可以帮帮我吗?任何帮助将受到高度赞赏!

1 个答案:

答案 0 :(得分:2)

您可以使用rRectangle添加到self.axes。此方法不会自动更改轴的限制。考虑您尝试放置add_patch补丁的位置。

Rectangle