这个问题在这里已有答案:
对于这个问题,我指的是这个例子: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)
有人可以帮帮我吗?任何帮助将非常感谢!
你可以用Rectangle
将self.axes
添加到add_patch
。此方法不会自动更改轴的限制。考虑一下你试图放置Rectangle
补丁的位置。
class MyStaticMplCanvas(MyMplCanvas):
"""Simple canvas with a rectangle plot."""
def compute_initial_figure(self):
x = 10
y = 20
width = 10
height = 20
rect = mpatches.Rectangle((x, y), width, height)
self.axes.add_patch(rect)
# Change limits so we can see rect
self.axes.set_xlim((0, 50))
self.axes.set_ylim((0, 50))