当使用 PyQt5 作为后端时,没有发现带有标签的句柄放在图例中

问题描述 投票:0回答:0

我已获得维护代码。它最初用于旧的 Debian 8。 现在该代码将用于最新的 Debian 和 Windows 10。 使用子图 (matplotlib+pyqt5) 绘图时出现上述警告。请帮忙删除。 目前出现该错误,并且软件的选项卡中没有绘制任何内容。

相关代码如下:-

self.tabwidget = QWidget()
self.tabwidget.figure = plt.figure()
self.tabwidget.canvas = FigureCanvas(self.tabwidget.figure)  
self.toolbar = NavigationToolbar(self.tabwidget.canvas, self.tabwidget)
self.layout = QVBoxLayout() 
self.layout.addWidget(self.tabwidget.canvas)
self.layout.addWidget(self.toolbar)
self.tabwidget.setLayout(self.layout)
self.tabs.addTab(self.tabwidget, 'Sub Plot'+str(m))
self.timing_compare = self.project_information_dialogue.timing.currentText()
self.total_parameters =self.pcm_analysis_configure_plot_obj.line_object_list[m].len_parameters
                        
type_one_subplot_zoom='false'                  
self.autoformat_Date_flag='false'

for i in range( self.total_parameters):
        parameter=self.pcm_analysis_configure_plot_obj.line_object_list[m].config_data_objects[i].data_words
              if(i==0):
        row =  self.tabwidget.figure.add_subplot( self.total_parameters ,1,i+1)
          else:    
            if(parameter!=[] and type_one_subplot_zoom=='true'):
              row =  self.tabwidget.figure.add_subplot( self.total_parameters ,1,i+1,sharex=row)
           else:
              row =  self.tabwidget.figure.add_subplot( self.total_parameters ,1,i+1)
                                  
          #row.set_autoscaley_on(False)
                              
                            
         # plt.gca().xaxis.set_major_formatter(matplotlib.dates.DateFormatter("%H:%M:%S"))
          if(parameter!=[]):
                   type_one_subplot_zoom='true'
                   param_label=self.pcm_analysis_configure_plot_obj.line_object_list[m].parameters[i]
               if(len(param_label) > 15 ):
                   plot_label=param_label[:15]+'-\n-'+param_label[15:]
               else:
                   plot_label=param_label                                              
                   row.plot(self.pcm_analysis_configure_plot_obj.line_object_list[m].config_data_objects[i].time,parameter,'-',label=plot_label)
                   (min_val,max_val)=self.getting_max_min(parameter)
                   plt.ylim(min_val,max_val)
                   plt.legend(bbox_to_anchor=(1.0, 1), loc=2,prop={'size':8}, borderaxespad=0.)
                          
        elif(parameter==[]):
                   type_one_subplot_zoom='false'
                   self.autoformat_Date_flag='true'
                   row.annotate("No data for sub plot parameter : "+self.pcm_analysis_configure_plot_obj.line_object_list[m].parameters[i], xy=(0.2, 0.8))                                 
if(self.autoformat_Date_flag != 'true'):
      plt.gcf().autofmt_xdate()
                              
plt.xlabel('time')  
plt.xticks(rotation=10)
plt.tight_layout(rect=[0,0,0.85,1])
plt.savefig(self.path+'/'+'Sub Plot'+str(m)+'.png',bbox_inches='tight')                                                                    
self.tabwidget.canvas.draw()       
plt.close()
del(self.tabwidget.canvas)
del(self.toolbar)
del( self.tabwidget.figure)
del( self.tabwidget)
del(self.layout)


尝试更改代码,将 plt 替换为 row 等,但没有任何效果。

python matplotlib pyqt5 label legend
© www.soinside.com 2019 - 2024. All rights reserved.