我真的想要爱上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. Python的图形用户界面 - 使无形的标签可见
- 2. 与Tkinter的Python图形用户界面
- 3. 按钮在Matlab图形用户界面表单元格
- 4. 是否可以使用图形用户界面?
- 5. 在matlab中使用ginput后更新img图形用户界面
- 6. Matlab - 用Arduino数据绘图的图形用户界面(GUI)
- 7. 使用Hadoop的图形用户界面
- 8. Java图形用户界面
- 9. 图形用户界面
- 10. 图形用户界面
- 11. 图形用户界面 - Tkinter
- 12. 图形用户界面使用OpenCV
- 13. 在Python图形用户界面中使用字段的按钮
- 14. MATLAB:图形用户界面,自定义图例
- 15. uigetfile在Matlab中的图形用户界面
- 16. 图形用户界面Matlab中的数字
- 17. 用户界面库(网格视图,Metro风格)
- 18. 图形用户界面与Python使用Tkinter,错误
- 19. 在MATLAB中定位图像轴图形用户界面在MATLAB中
- 20. 分层面板图形用户界面
- 21. Matlab图形用户界面 - 使用更新函数更新句柄的问题
- 22. Matlab图形窗口转换(屏幕转换 - 图形用户界面设计)
- 23. BotFramework中FormFlow的图形用户界面
- 24. 图形用户界面的Docker
- 25. 数据库的图形用户界面
- 26. 基于节点的图形用户界面(可可)
- 27. Python程序控制台里面pyqt图形用户界面
- 28. 用Tkinter构建图形用户界面
- 29. 图形用户界面(GUI)的Python包的正确布局
- 30. 平台相关的图形用户界面与网络界面
你能提供一个你正在谈论的GUI的例子吗? – NightHallow 2013-03-19 18:01:20
挖掘matplotlib ...它会生成图形,你可以将它们显示在任何地方。 – tdelaney 2013-03-19 18:07:16
没有任何截图方便,但相当简单的GUI与选项卡,表格和一些图表。 – user1507844 2013-03-19 18:14:01