2017-09-30 16 views
0

私はしばらくの間この作業をしてきましたが、私はそれを乗り越えることはできません。問題は、ベクトル表現をtkinterウィンドウ内に挿入したいということです。私はtkinterに線や関数をプロットすることができましたが、ベクトルはまったく別の話です。 はここで、これまでに埋め込むための私が持っているコードです:ベクトルプロットをTkinterに埋め込む

import matplotlib 
matplotlib.use('TkAgg') 

from numpy import arange, sin, pi 
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg 
from matplotlib.backend_bases import key_press_handler 


from matplotlib.figure import Figure 

import tkinter as Tk 


root = Tk.Tk() 
root.wm_title("Embedding in TK") 

f = Figure(figsize=(5, 4), dpi=100) 
a = f.add_subplot(111) 

a.plot([7,8], [2, 4]) 

canvas = FigureCanvasTkAgg(f, master=root) 
canvas.show() 
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) 


Tk.mainloop() 

およびベクターをプロットするためのコード:

import matplotlib.pyplot as plt 
import numpy as np 
import tkinter as Tk 


v1 = (3, -4) 
v2 = (-6,4, 10) 

soa = np.array([[0, 0, v1[0], v1[1]], [0, 0, v2[0], v2[1]]]) 
X, Y, U, V = zip(*soa) 
plt.figure() 
ax = plt.gca() 
ax.quiver(X, Y, U, V, angles='xy', scale_units='xy', scale=1) 
ax.set_xlim([-10, 10]) 
ax.set_ylim([-5, 11]) 
plt.draw() 

plt.show() 

Tk.mainloop() 

多分この二つをマージする方法はありますか?

+0

正確にはどのような問題がありますか?それは「全く別の話」ではない。実際にはすべて同じです。 – ImportanceOfBeingErnest

+0

それは事です、私はこれらの2つのコードがどこに関連しているかはわかりません。下のコードでは、プロットは 'plt.show'で表示されていますが、上ではwid a.plot()で表示されています。それが私の主な問題です。私が明白な何かを見ていないならば、すみません。 – AlBud

答えて

0

matplotlibページでもう少し詳しく読んで、例を見ていただければ幸いです。それから、あなたは自分が必要とするよりも、それをもっと難しくしています。類似のものを同様に呼び出すことから始めます。最初のケースでは、軸aを持っています.2番目のケースでは、axと呼ばれ、唯一の違いは.plotの代わりに.quiverです。 canvas.show()があるため、plt.showは不要です。

import matplotlib 
matplotlib.use('TkAgg') 

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg 

import numpy as np 
from matplotlib.figure import Figure 

import tkinter as Tk 


root = Tk.Tk() 
root.wm_title("Embedding in TK") 

f = Figure(figsize=(5, 4), dpi=100) 
ax = f.add_subplot(111) 

v1 = (3, -4) 
v2 = (-6,4, 10) 

soa = np.array([[0, 0, v1[0], v1[1]], [0, 0, v2[0], v2[1]]]) 
X, Y, U, V = zip(*soa) 

ax.quiver(X, Y, U, V, angles='xy', scale_units='xy', scale=1) 
ax.set_xlim([-10, 10]) 
ax.set_ylim([-5, 11]) 

canvas = FigureCanvasTkAgg(f, master=root) 
canvas.show() 
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) 


Tk.mainloop() 
関連する問題