gpt4 book ai didi

python - Tkinter中嵌入Matplotlib,显示问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:33 25 4
gpt4 key购买 nike

我目前正在尝试使用 matplotlib 在 tkinter 窗口中绘制球体。我该如何着手制作方形显示器?我希望球体的变形尽可能小。

我的代码:

#!/usr/bin/env python
import matplotlib
matplotlib.use('TkAgg')

from mpl_toolkits.mplot3d import axes3d,Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure

import Tkinter
import sys

class ElectronOrbitalGenerator(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent


self.protocol("WM_DELETE_WINDOW", self.dest)
self.main()

def main(self):
self.fig = plt.figure()
ax = Axes3D(self.fig)

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

t = ax.plot_surface(x, y, z, rstride=4, cstride=4, color='lightgreen',linewidth=0)

self.frame = Tkinter.Frame(self)
self.frame.pack(padx=15,pady=15)

self.canvas = FigureCanvasTkAgg(self.fig, master=self.frame)

self.canvas.get_tk_widget().pack(side='top', fill='both', expand=1)


self.canvas._tkcanvas.pack(side='top', fill='both', expand=1)

self.btn = Tkinter.Button(self,text='button',command=self.alt)
self.btn.pack()

def alt (self):
print 9
def dest(self):
self.destroy()
sys.exit()



if __name__ == "__main__":
app = ElectronOrbitalGenerator(None)
app.title('Embedding in TK')
app.mainloop()

编辑

我试过了

    self.fig.set_figwidth(100.0)
self.fig.set_figheigth(100.0)

得到这个

AttributeError: 'Figure' object has no attribute 'set_figheigth'

最佳答案

您可以使用 pyplot.figure()figsize 参数来设置图形大小。

例如

self.fig = plt.figure(figsize=(5,5))

关于python - Tkinter中嵌入Matplotlib,显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com