摘要:一基本介紹使用的開發(fā)工具是中的這個工具比較好用,安裝步驟直接百度即可。原始代碼用到了幾個庫,用到了庫等,百度添加相應(yīng)的庫即可。二具體代碼這樣就得到了圖形界面與代碼的結(jié)合。
1.使用的python開發(fā)工具是Anaconda中的Spyder
這個工具比較好用,安裝步驟直接百度即可。
2.原始代碼用到了幾個庫,用到了matplotlib庫等,百度添加相應(yīng)的庫即可。
3.原始代碼的主要流程:main函數(shù)------>生成界面------>點擊按鈕調(diào)用輸入函數(shù)------->調(diào)用一元二次方程代碼函數(shù)。
這樣就得到了圖形界面與代碼的結(jié)合。
import tkinter as tkimport matplotlib.pyplot as pltfrom mpl_toolkits.axisartist.axislines import SubplotZeroimport numpy as npimport mathdef parabola(d): plt.rcParams["font.sans-serif"] = ["SimHei"] # 用來正常顯示中文標簽 plt.rcParams["axes.unicode_minus"] = False # 用來正常顯示負號 """生成畫布""" fig = plt.figure(1, (10, 10)) # 最終生成的圖片大小 axis = SubplotZero(fig, 1, 1, 1) # 把畫布分成1 * 1的格子, 把圖形放在第1格 fig.add_subplot(axis) """新建坐標軸""" axis.axis["xzero"].set_visible(True) axis.axis["yzero"].set_visible(True) """生成坐標箭頭""" axis.axis["xzero"].set_axisline_style("-|>") axis.axis["yzero"].set_axisline_style("-|>") axis.axis["top", "right", "left", "bottom"].set_visible(False) # 隱藏默認坐標軸 axis.grid(True, linestyle="-.") # 設(shè)置網(wǎng)格樣式 """設(shè)置圖形繪制范圍""" x_boundary = 20 # 圖形的邊界區(qū)間設(shè)置為x_boundary 的絕對值 granularity = 0.01 x = np.arange(-x_boundary, x_boundary, granularity) a, b, c = list(map(float, d.split(" "))) # 輸入a、b、c的值 y = a * pow(x, 2) + b * x + c # 計算y的值 axis.plot(x, y) # 添加標題 plt.title("y = ax^2 + bx + c/na={:.2f}, b={:.2f}, c={:.2f}".format(a, b, c), bbox=dict(facecolor="g", edgecolor="blue", alpha=0.65), fontsize="20") """根據(jù)a、b、c的值畫圖""" if a == 0: # 如果a == 0, 畫一條y = bx + c的線, 并提示a不要為0 plt.text(0, 0, r"$this/ is/ a/ line/ !!!$", fontdict={"size": "20", "color": "red"}) plt.text(0, -1, r"$please/ make/ sure/ the/ first/ number/ is/ not/ 0!!!$", fontdict={"size": "20", "color": "red"}) # 如果a == 0,則沒有極值, 坐標軸默認大小 extremum_x = 0 extremum_y = 0 else: # 計算極值點 extremum_x = - (b / (2 * a)) extremum_y = (4 * a * c - pow(b, 2)) / (4 * a) # 標注極值點 plt.scatter(extremum_x, extremum_y) # 根據(jù)a的符號更新描述信息 if a > 0: point_describe = "小" else: point_describe = "大" # 距離極值點1個單位打印極值點描述 plt.text(extremum_x, extremum_y - (a / a.__abs__()), "(%.2f, %.2f)是極%s值點" % (extremum_x, extremum_y, point_describe), fontdict={"size": "18", "color": "b"}) # 如果等于0的解存在, 則求根 delta = pow(b, 2) - 4 * a * c if delta < 0: # 沒有實根 # 距離極值點1個單位打印無實根 plt.text(extremum_x, extremum_y - 2 * (a / a.__abs__()), "此方程沒有實根", fontdict={"size": "18", "color": "red"}) elif delta == 0: # 有重根 x1 = (-b + math.sqrt(delta)) / (2 * a) # 標注y = 0的點 plt.scatter(x1, 0) # 距離實根1個單位打印坐標 plt.text(x1, 0 + 1 * (a / a.__abs__()), "(%.2f, 0)是唯一實根" % x1, fontdict={"size": "18", "color": "#0cf"}) else: # 有兩個實根 x1 = (-b + math.sqrt(delta)) / (2 * a) x2 = (-b - math.sqrt(delta)) / (2 * a) # 標注y = 0的點 plt.scatter(x1, 0) plt.scatter(x2, 0) # 距離實根1個單位打印第1個根的坐標 plt.text(x1, 0 - 1 * (a / a.__abs__()), "(%.2f, 0)是第一個根" % x1, fontdict={"size": "18", "color": "#000"}) # 距離實根1個單位打印第2個根的坐標 plt.text(x2, 0 + 1 * (a / a.__abs__()), "(%.2f, 0)是第二個根" % x2, fontdict={"size": "18", "color": "#000"}) """根據(jù)極值點動態(tài)調(diào)整坐標軸范圍""" axis.set_xlim([extremum_x - 10, extremum_x + 10]) axis.set_ylim([-extremum_y.__abs__() - 10, extremum_y.__abs__() + 10]) plt.text(extremum_x + 10, 0.5, "x", fontdict={"size": "18", "color": "#000"}) plt.text(0.5, extremum_y.__abs__() + 9.2, "y", fontdict={"size": "18", "color": "#000"}) """顯示圖片""" plt.show() def control_entry(): #獲取輸入值 d = entry_parabola.get() #調(diào)用函數(shù) parabola(d) if __name__ == "__main__": # 初始化 root = tk.Tk() # 圖形界面的標題 root.title("一元函數(shù)畫圖") # 窗口的尺寸,分別對應(yīng)的寬和高 root.geometry("250x100") # 文本提示 label_parabola = tk.Label(root, text="y=ax^2+bx+c,請輸入a,b,c的值,用空格隔開") # 隨機數(shù)展示的entry entry_parabola = tk.Entry(root) # 生成隨機數(shù)的按鈕,按下按鈕觸發(fā)函數(shù) #執(zhí)行標簽代碼 label_parabola.pack() #執(zhí)行輸入框代碼 entry_parabola.pack() button_gen = tk.Button( root, text="點擊按鈕", command=control_entry) #執(zhí)行按鈕代碼 button_gen.pack() # 保持圖形界面不被銷毀 root.mainloop()
直接百度:python打包 即可。
打包完成后,后綴為exe文件,如圖:
如此就可以制作一個簡單的python軟件。界面做的更美觀些,多添加幾個函數(shù),就可以做成我的博客中的基本函數(shù)畫圖軟件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/122498.html
Python GUI圖形用戶界面,指的是在Python中,采用圖形的形式,去操作相關(guān)的一些用戶界面,這么說的話,比較簡單的。大家想不想搞清楚,它到底本質(zhì)上的樣子是什么呢?下面就給大家做個解答。 GUI介紹 圖形用戶界面(Graphical User Interface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。圖形用戶界面是一種人與計算機通信的界面顯示格式,允...
摘要:在這個窗口之上,可以添加各種輸入框按鈕文本等,可以增加對各種動作的處理。事件要與特定的控件相綁定,比如按鈕有點擊事件,輸入框有按鍵事件,窗體有關(guān)閉事件等。 在大多數(shù)時候,我們都在黑黢黢的控制臺里執(zhí)行 Python 腳本。這看起來很酷很 GEEK。但對于部分場景下的用戶來說,這樣就不大美觀和人性化了:我們需要交互更方便的圖形化產(chǎn)品,也就是 GUI (圖形用戶界面,Graphical Us...
摘要:引言學(xué)這么久了,一直想做個界面出來,最近發(fā)現(xiàn)有個內(nèi)置庫,利用它可以很輕松做出一些簡易的界面,首先來看官方對的說明從上面描述中我們不難看出,不管你是系統(tǒng),還是系統(tǒng),它都可以生成相對應(yīng)的操作界面,這就是所謂的跨平臺。 showImg(https://segmentfault.com/img/remote/1460000018532942?w=1078&h=1076); 0.引言 學(xué)Pyth...
摘要:下面,作者介紹了八種在中實現(xiàn)的可視化工具包,其中有些包還能用在其它語言中。當(dāng)提到這些可視化工具時,我想到三個詞探索數(shù)據(jù)分析。還可以選擇樣式,它模擬了像和等很流行的美化工具。有很多數(shù)據(jù)可視化的包,但沒法說哪個是最好的。 showImg(https://segmentfault.com/img/remote/1460000019029121); 作者:Aaron Frederick 喜歡用...
摘要:自己選擇一個好的圖像背景填充畫布注意背景圖片可根據(jù)自己的喜好進行更換,還不趕緊定制一個屬于自己的煙花秀七夕總結(jié)以上便是博主給大家的七夕節(jié)禮物了,代碼不到行,但卻完成了一個超炫的效果。完整代碼可在公眾號后臺回復(fù)七夕獲取,最后祝大家七夕節(jié)快樂。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 showImg(https://segmentfault.c...
閱讀 1886·2021-11-15 11:46
閱讀 1077·2021-10-26 09:49
閱讀 1819·2021-10-14 09:42
閱讀 3373·2021-09-26 09:55
閱讀 827·2019-08-30 13:58
閱讀 1023·2019-08-29 16:40
閱讀 3462·2019-08-26 10:27
閱讀 601·2019-08-23 18:18