2017-06-15 53 views
0

我正在使用Mac OS X(10.11.16)與PyQt5和Matplotlib。我將MPL繪圖環境嵌入到Qt應用程序中。我想要兩件事情,我不知道該怎麼做:Matplotlib Qt光標未顯示

  1. 我想要一個十字光標遊標,只要我懸停在圖上。
  2. 我希望劇情佔據整個分配區域(請參閱下圖)。

我編碼,如下所示:

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

,如果你想有軸佔用所有空間或圖像這不是從問題明確。在前一種情況下,使用

self.ax.set_aspect("auto") 

enter image description here

在後一種情況下使用

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

enter image description here

我不能重現,雖然光標的問題。所有三個選項對我來說都很好

+0

您先生,是一個傳奇!這是完美的(「平等」「數據」選項)。根據遊標,我對於拒絕更改遊標的原因感到不知所措。我會再看看更多。感謝您的所有幫助@ImportanceOfBeingErnest – NineTails