私はインターネット上で多くのソリューションを探してみましたが、何も見つけることができませんでした。画像のようにキャンバス上のプロットの周りの空白を削除しようとしていますが、これまでのところ成功していません。Pythonのtkinterキャンバスから空白を削除するには?
私が書いた簡単なコードは次のとおりです。
import tkinter as tk
import matplotlib
from matplotlib import style
style.use('seaborn-darkgrid')
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import random
class GUIplot(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
printButton = tk.Button(self, text="Plot1", command=lambda: self.printMessage(canvas,a))
printButton.grid(row=0, column=0, sticky='w')
f = Figure(figsize=(24,12))
a = f.add_subplot(111, axisbg='r')
canvas = FigureCanvasTkAgg(f, self)
canvas.get_tk_widget().grid(row=1, columnspan=2)
#canvas._tkcanvas.config(bg='blue')
canvas.show()
canvas.blit()
def printMessage(self,canvas,a):
a.clear()
my_random_x = random.sample(range(100),10)
my_random_y = random.sample(range(100),10)
a.plot(my_random_x,my_random_y,'*')
canvas.draw()
print("Wow")
GUIplot1 = GUIplot()
GUIplot1.title('PlotFunction')
w, h = GUIplot1.winfo_screenwidth(), GUIplot1.winfo_screenheight()
GUIplot1.geometry("%dx%d+0+0" % (w, h))
GUIplot1.mainloop()
コミュニティのメンバーのいずれかが私を提供喜ばせるために、この問題を解決する方法についての任意のアイデアを持っている場合、私は要求しますいくつかのガイダンスで。あなただけ
canv=tk.Canvas(master=root, bd=0, highlightthickness=0)
にしてみ使用tk.Canvasで
を:私はFigureCanvasTkAggの事とのビジネスではないんだけど、限り、それはtk.Canvasに基づいて、これは動作するはず
あなたは、画面全体を占めるようにウィンドウのサイズを変更しています。キャンバスは指定したウィンドウのサイズを埋めるのに十分な大きさではありません。したがって余分なスペースは、あなたが言及した「空白」で埋められています。 – RobertR
@RobertR、入力いただきありがとうございます。 'canvas = FigureCanvasTkAgg(f、self)'を使うときにキャンバスのサイズをどのように増やすことができますか? –
'.grid(row = 1、columnspan = 2)'の呼び出しで画面にグリッドを描くときに 'sticky =" nswe "'を呼び出してみてください。したがって、 '.grid(row = 1、columnspan = 2、sticky =" nswe ")'のようになります。それがうまくいくかどうかは完全にはわかりません。より良い解決策は、あなたのウィンドウのサイズを増やさず、tkがあなたのためにそれを自動的にサイズさせることです。この方法では、ウィジェット(キャンバス)のサイズに合わせて、空白がなくなります。それが画面のフルサイズになりたいという理由がない限り、そこにはありますか? – RobertR