Графики не выглядят одинаково на .exe, как на Spyder - PullRequest
0 голосов
/ 27 апреля 2020

Я преобразовал свой проект из файла .py в файл .exe.

В моем проекте я создаю несколько графиков, и они выглядят очень аккуратно, когда я запускаю проект через Spyder. К сожалению, когда я конвертирую его в файл .exe, это не так.

Ниже изображен график из Spyder: Graph from Spyder

And это изображение графика, созданного с помощью файла .exe: Graph from .exe

И некоторые графики выглядят даже хуже. С этим графиком я использовал следующий код:

  1. Сначала я рисую график на основе моих параметров:

    if (not self.ax):
       self.ax= self.fig.add_axes([0.1, 0.2, 0.8, 0.65])
    else:
       self.ax.set_position([0.1, 0.2, 0.8, 0.65])
    if (self.ax2):
       self.fig.delaxes(self.ax2)
       self.ax2=None
    self.ax.cla()
    self.ax.scatter(volt_chk,cap_chk,label="Capacitance Chuck")
    self.ax.scatter(volt_rls,cap_rls,label="Capacitance Release")
    self.ax.set_xlabel('Voltage (v)')
    self.ax.set_ylabel('Capacitance')
    self.axParamText=self.ax.text(0.1, 0.9,'Vmax= '+str(Vmax)+'; Step1= '+str(Step1)+'; Step2= '+str(Step2)+'; Threshold= '+str(Threshold)+'; dt= '+str(dt)+'; maxCritVolt= '+str(maxCritVolt)+'; multiplier= '+str(multiplier),transform=self.fig.transFigure)
    self.fig.canvas.draw_idle()     
    self.ax.legend(bbox_to_anchor=(1, 0.75), bbox_transform=self.ax.transAxes)
    
  2. После этого я делаю некоторые корректировки, чтобы включить результаты испытаний, которые вы видите на правая сторона:

        if (not self.ax):
            self.ax= self.fig.add_axes([0.1, 0.2, 0.7, 0.65])
            self.ax.set_position([0.1, 0.2, 0.7, 0.65])
        if(self.skipped==True):
            self.ax.text(0.82, 0.6,'Test result: Skipped',transform=self.fig.transFigure)
        elif (self.stopped==True):
                self.axResText=self.ax.text(0.82, 0.6,'Test result: Stopped',transform=self.fig.transFigure)
        elif(self.passed=='Threshold'):
            self.axResText= self.ax.text(0.82, 0.6,'Test result: Failed\nDid not pass Threshold',transform=self.fig.transFigure)
        elif(self.passed==False):
            self.axResText= self.ax.text(0.82, 0.6,'Test result: Failed\nCritcal Voltage= '+str(critVolt)+'\nmaxCritVolt= '+str(maxCritVolt),transform=self.fig.transFigure)
        else:
            self.axResText= self.ax.text(0.82, 0.6,'Test result: Passed\nCritcal Voltage= '+str(critVolt)+'\nmaxCritVolt= '+str(maxCritVolt),transform=self.fig.transFigure)
    

Я преобразовал через pyinstaller.

Что я могу сделать по этому поводу? Есть ли что-то, что я могу сделать, или мне всегда придется go методом проб и ошибок, пока я не получу правильное объяснение при совмещении от .py до .exe?

Сейчас я не вижу другого решения, кроме изменения всех масштабируйте, конвертируйте, проверяйте и делайте это взад и вперед до тех пор, пока оно не станет правильным - это может занять у меня кучу времени, поскольку это длинный код с большим количеством графиков ..

Заранее спасибо!

*** РЕДАКТИРОВАТЬ: Забыл упомянуть - это происходит только с графиками, все хорошо с метками, кнопками и т. Д. c .. Использовал их для создания моих графиков:

import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvas
...