我真的想要愛上Python並且離開Matlab。是否有可能在Python中製作Matlab風格的圖形用戶界面?比較起來有多容易? (我以編程方式製作matlab GUI,不敢使用GUIDE)我可以在這些GUI中放入matplotlib圖形嗎? tk或wx(或其他)更好嗎?python可以使Matlab風格的圖形用戶界面
0
A
回答
1
wxPython有選項卡,網格或ListCtrls(即表),並支持matplotlib和PyPlot的圖形。你可以閱讀以下鏈接使用matplotlib:
- http://eli.thegreenplace.net/2008/08/01/matplotlib-with-wxpython-guis/
- Embedding a matplotlib figure inside a WxPython panel
- http://www.scipy.org/Cookbook/Matplotlib/EmbeddingInWx
- http://wiki.wxpython.org/MatplotlibFourierDemo
要查看所有附帶的wxPython的小工具,去到www .wxpython.org並點擊左邊的下載鏈接。你會發現他們有一個獨立的Docs & Demo包,可以向你展示幾乎所有的小部件及其工作原理。
1
以前沒有用過Matlab,不確定它是否是GUI。但是如果你傾向於交互式地使用Python,你可能想試試iPython。使用Qt的Ipython可以爲您提供一個優雅的GUI。
+0
提問者想知道創建GUI的能力,而不是在GUI中使用python – 2013-03-19 19:19:07
1
對於您可能要檢查出的GUI中性小部件matplotlib提供簡單的接口,這裏的文檔 - http://matplotlib.org/api/widgets_api.html
下面是使用這些GUI中性部件繪製與被控制的可變參數的函數的一個簡單的例子由三個滑塊的小部件:
import functools
import numpy as np
import pylab
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons, MultiCursor
def hillfxn(x, B, K, n):
xn = float(x**n)
return (B * xn)/(K**n + xn)
def draw_function(x, y, xlabel="Activator concentration (X)",
ylabel="Promoter activity"):
fig, ax = plt.subplots(1, 1, sharex=True)
plt.subplots_adjust(left=0.15, bottom=0.25)
lines = ax.plot(x, y)
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
ax.set_ylim(0,max(y)*1.1)
return fig, ax, lines
def draw_interactive_controls(n, B, K):
axcolor = 'lightgoldenrodyellow'
axK = plt.axes([0.1, 0.01, 0.75, 0.03], axisbg=axcolor)
axB = plt.axes([0.1, 0.06, 0.75, 0.03], axisbg=axcolor)
axN = plt.axes([0.1, 0.11, 0.75, 0.03], axisbg=axcolor)
Nslider = Slider(axN, "$n$", 1, 10, valinit=n, valfmt='%1.3f')
Bslider = Slider(axB, "$\\beta$", 0, 20, valinit=B, valfmt='%1.3f')
Kslider = Slider(axK, "$K$", 0.01, 20, valinit=K, valfmt='%1.3f')
return Nslider, Bslider, Kslider
def update_plot(val, x=None, lines=None, ax=None,
Nslider=None, Bslider=None, Kslider=None):
n = Nslider.val
B = Bslider.val
K = Kslider.val
y = [hillfxn(i, B, K, n) for i in x]
lines[0].set_ydata(y)
ax.set_ylim(0,max(y)*1.1)
pylab.draw()
if __name__ == "__main__":
# initial values
B, K, n = 5, 5, 1
x= np.linspace(0,30,250)
y = [hillfxn(i, B, K, n) for i in x]
# setup initial graph and control settings
fig, ax, lines = draw_function(x,y)
Nslider, Bslider, Kslider = draw_interactive_controls(n, B, K)
# specify updating function for interactive controls
updatefxn = functools.partial(update_plot, x=x, lines=lines, ax=ax,
Nslider=Nslider, Bslider=Bslider, Kslider=Kslider)
Nslider.on_changed(updatefxn)
Bslider.on_changed(updatefxn)
Kslider.on_changed(updatefxn)
pylab.show()
這將產生如下所示的接口:
相關問題
- 1. 與Tkinter的Python圖形用戶界面
- 2. Matlab - 用Arduino數據繪圖的圖形用戶界面(GUI)
- 3. 圖形用戶界面
- 4. 圖形用戶界面使用OpenCV
- 5. 在Python圖形用戶界面中使用字段的按鈕
- 6. 圖形用戶界面與Python使用Tkinter,錯誤
- 7. 在MATLAB中定位圖像軸圖形用戶界面在MATLAB中
- 8. 分層面板圖形用戶界面
- 9. Matlab圖形用戶界面 - 使用更新函數更新句柄的問題
- 10. Matlab圖形窗口轉換(屏幕轉換 - 圖形用戶界面設計)
- 11. BotFramework中FormFlow的圖形用戶界面
- 12. 圖形用戶界面的Docker
- 13. Python程序控制臺裏面pyqt圖形用戶界面
- 14. 用Tkinter構建圖形用戶界面
- 15. 圖形用戶界面(GUI)的Python包的正確佈局
- 16. 在Python中構建基於HTML5的圖形用戶界面
- 17. 圖形用戶界面和Python中的TUI
- 18. Python用戶界面
- 19. Skype for Business圖形用戶界面
- 20. Common Lisp圖形用戶界面開發
- 21. 圖形用戶界面/ TUI linux庫
- 22. 圖形用戶界面不文本
- 23. 構建IronRuby WPF圖形用戶界面
- 24. 自定義Windows圖形用戶界面
- 25. 圖形用戶界面循環按鈕
- 26. 圖形用戶界面 - actionListener方法
- 27. 遊戲編程 - 圖形用戶界面
- 28. 測試圖形用戶界面
- 29. Java圖形用戶界面被凍結
- 30. C++指針圖形用戶界面QT
你能提供一個你正在談論的GUI的例子嗎? – NightHallow 2013-03-19 18:01:20
挖掘matplotlib ...它會生成圖形,你可以將它們顯示在任何地方。 – tdelaney 2013-03-19 18:07:16
沒有任何截圖方便,但相當簡單的GUI與選項卡,表格和一些圖表。 – user1507844 2013-03-19 18:14:01