Сбой Tkinter при попытке сохранить созданный с помощью plotnine сюжет - PullRequest
0 голосов
/ 24 февраля 2019

Я использую Python 3.5.3 в Debian 9.

Окно Tkinter аварийно завершает работу при нажатии кнопки «Создать график» для сохранения графика, созданного с помощью plotnine.Тем не менее, график успешно сохраняется в рабочем каталоге.Блок кода, указанный ниже, представляет собой простое воссоздание вышеупомянутой ошибки, с которой я сталкиваюсь в более крупном приложении tkinter.Я новичок в программировании на Python и обычно использую его для анализа данных биоинформатики.Пожалуйста, помогите мне.

import tkinter as tk
from fpdf import FPDF
import pandas as pd
from plotnine import *

def createPlot():
    df = {"dates":[1,2,3,4,5,6], "amount":[21,22,18,19,25,15]}
    df = pd.DataFrame(df)

    plot = ggplot(aes(x="dates", y="amount"), data=df) + xlab("Dates") + ylab("Amount") #Create the base plot and axes
    plot = plot + scale_x_continuous(breaks = list(df.dates)) #Format the axes

    plot = plot + geom_line(aes(x=list(df.dates), y=list(df.amount)), data=df) #Create the actual data plot

    plot.save(filename = 'plot.png', dpi=300, width=12, height=7, units="in")  #Save the plot as a PNG image



# The GUI Mainloop
root=tk.Tk()
root.title("Test")
root.minsize(width=200,height=200)
root.maxsize(width=200,height=200)

CreatePlotButton=tk.Button(root,text="Create Plot",command= createPlot) #Button to create plots
CreatePlotButton.pack()
CreatePlotButton.place(x=20,y=100)

root.mainloop()

Это предупреждение, которое генерируется из терминала

/usr/local/lib/python3.5/dist-packages/plotnine/ggplot.py:706: UserWarning: Saving 12 x 7 in image.
from_inches(height, units), units))
/usr/local/lib/python3.5/dist-packages/plotnine/ggplot.py:707: UserWarning: Filename: plot.png
warn('Filename: {}'.format(filename))

Я также попытался запустить приложение, закомментировав строку plot.save (), как показано наБлок кода ниже.Приложение не вылетает при нажатии «Создать график».Кажется, что ошибка появляется, когда я пытаюсь сохранить график, а не во время генерации графика с использованием plotnine.

import tkinter as tk
from fpdf import FPDF
import pandas as pd
from plotnine import *

def createPlot():
    df = {"dates":[1,2,3,4,5,6], "amount":[21,22,18,19,25,15]}
    df = pd.DataFrame(df)

    plot = ggplot(aes(x="dates", y="amount"), data=df) + xlab("Dates") + ylab("Amount") #Create the base plot and axes
    plot = plot + scale_x_continuous(breaks = list(df.dates)) #Format the axes

    plot = plot + geom_line(aes(x=list(df.dates), y=list(df.amount)), data=df) #Create the actual data plot

    #plot.save(filename = 'plot.png', dpi=300, width=12, height=7, units="in")  #Save the plot as a PNG image



# The GUI Mainloop
root=tk.Tk()
root.title("Test")
root.minsize(width=200,height=200)
root.maxsize(width=200,height=200)

CreatePlotButton=tk.Button(root,text="Create Plot",command= createPlot) #Button to create plots
CreatePlotButton.pack()
CreatePlotButton.place(x=20,y=100)

root.mainloop()

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

...