Matplotlib Qt光标没有显示

时间:2017-06-15 05:37:28

标签: qt matplotlib

我使用Mac OS X(10.11.16)和PyQt5以及Matplotlib。我将MPL绘图环境嵌入到Qt应用程序中。我想要两件事,我可以解决该怎么做:

  1. 每当我将鼠标悬停在地块上时,我都想要一个十字光标。
  2. 我希望情节占据整个分配区域(见下图)。
  3. 我的编码如下:

    self.fig = plt.figure()
    self.fig.patch.set_facecolor('#000000')
    
    self.ax = self.fig.add_axes([0,0,1,1])
    self.ax.set_facecolor('#000000')
    self.ax.title.set_color('#FFFFFF')
    self.ax.xaxis.label.set_color('#FFFFFF')
    self.ax.yaxis.label.set_color('#FFFFFF')
    self.ax.xaxis.set_label_coords(0.5,0.12)
    self.ax.yaxis.set_label_coords(0.12,0.5)
    self.ax.xaxis.label.set_size(20)
    self.ax.yaxis.label.set_size(20)
    self.ax.spines['left'].set_visible(False)
    self.ax.spines['top'].set_visible(False)
    self.ax.spines['right'].set_visible(False)
    self.ax.spines['bottom'].set_visible(False)
    self.ax.tick_params('both',which='both',length=7,width=1,pad=-30,direction='in',colors='#FFFFFF')
    
    # Create a canvas widget for Qt to use.
    self.canvas = FigureCanvas(self.fig)
    # self.canvas.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))
    # self.canvas.setCursor(QtCore.Qt.CrossCursor)
    # cursor = mpl.widgets.Cursor(self.ax, useblit=True, color='red', linewidth=2)
    
    # Refresh the canvas.
    self.canvas.draw()
    

    这3条评论的光标线是我尝试这样做的,但它们似乎不起作用。

    对于我的地块尺寸,我希望轴一直延伸到工作区的两端。这是一个动态大小的区域。它甚至可能吗?

    Screen capture

1 个答案:

答案 0 :(得分:1)

从问题中不清楚是否要让轴占据所有空间或图像。在前一种情况下,使用

self.ax.set_aspect("auto")

enter image description here

在后一种情况下使用

self.ax.set_aspect("equal", "datalim")

enter image description here

我无法重现光标问题。这三个选项对我来说都很好