2017-06-15 56 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