[英]Embed vector plot into 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()
也許有一種方法可以合並這兩個?
我認為您可以從matplotlib頁面上閱讀更多內容並查看示例,從而從中受益。 這樣一來,您自己就變得比需要做的難。 首先類似地調用類似的東西。 在第一種情況下,你有一個軸a
,在第二種情況下,你怎么稱呼它ax
,APPART唯一不同的是真的,而不是.plot
你需要.quiver
。 plt.show
,因為您有canvas.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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.