我正在尝试使用matplotlib.前段时间我使用Excel VBA代码生成附加的图像.
您会注意到它不是以科学/研究风格呈现,而是如同学生在方格纸上生成 - 具有三种不同的网格线样式.
使用matplotlib是否有一种相当简单的方法来实现这类功能?

我试图将我的应用程序(具有1000多行GUI代码)重构为MVC样式模式.逻辑代码已经与GUI分离,因此这不是问题.我关心的是从控制器中分离出来的观点.我理解MVC的基本原理和wxpython wiki中的这个教程非常有用,但是代码示例有点简单,当我尝试将主体应用到我自己的项目时这让我很怀疑,这个项目要复杂得多.
一个结构的片段..
我有MainWindow一些小部件,包括一个noteBook(选项卡式部分),noteBook有许多选项卡其中一个选项卡(我调用FilterTab)包含一个类的两个实例(我称之为FilterPanel),这是一个带有列表框的面板,三个按钮,一个清除,一个删除,一个添加项目到列表中.根据实例化时传递给类的标志,add按钮事件可以创建不同类型的对话框,例如文本输入对话框或directoryPicker等.
这只是GUI的一部分,它非常分层 - 事件处理程序隐藏在FilterPanel类中.
如果我要将该部分转换为MVC,我将必须为我的控制器中的FilterPanel的每个实例(而不是filterPanel类)绑定按钮事件 - 在这种情况下有两个(filterPanel实例)
所以我会为每个按钮(每个filterPanel 3个按钮*面板实例的数量)加上处理程序这样的东西.
self.mainWindow.filterTab.dirFilterPnl.Bind(wx.EVT_BUTTON,
self.onAdd_dirFilterPnl,
self.mainWindow.filterTab.dirFilterPnl.addBtn,
self.mainWindow.filterTab.dirFilterPnl.addBtn.GetId()
)
Run Code Online (Sandbox Code Playgroud)
这增加了很多额外的代码,(如果我只有两个filterPanel实例,事件处理程序的数量加倍)
所以我想知道我采取了正确的方法吗?
我想使用SQLAlchemy和wxPython创建一个桌面应用程序,但我想以类似于django项目的方式构建项目,使用django app-like包(相同模型,视图和测试在同一个包中)和设置,以及根目录中的主模块.
我想知道这是否是一个很好的结构,以及如何最大限度地减少包之间的耦合.
我正在学习wxPython.在其中一个示例中,代码如下:
import wx
class App(wx.App):
def OnInit(self):
frame = wx.Frame(parent=None, title = 'bare')
frame.Show()
return True
app=App()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
我注意到该类App没有构造函数,只有函数OnInit.据我所知,Python类是用__init__函数构造的.
那么,OnInit函数是针对特定的类吗?或者它是另一种类型的构造函数?
请原谅我的无知,因为我是新手.谢谢.
我有一个冻结的wxpython应用程序的用户获取附加的屏幕截图.
错误消息是"Windows错误:提供程序DLL无法正确初始化"
从暂停的视频中截取的屏幕截图是我从他们那里得到此错误消息的唯一方法,因为整个事情立即消失(包括创建此DOS窗口以捕获stderr,此消息出现在哪里).IE python在它真正开始之前就已经死了.
回溯指向我在controller.py第14行的代码.
这条线是
import cgi
出于某种原因,似乎cgi在导入期间调用随机(为什么会这样?)并且出于某种原因,由于某些DLL原因,这是失败的.
有线索吗?
注1:此应用程序适用于数百个其他Windows和Mac用户.所以就好像我不提供某些不仅仅是因为这个用户的机器而出于某种原因的东西.
注2:使用bbfreeze创建可执行文件,使用以下配置:
f = Freezer(distdir = distdir,
includes = ['wx.lib.pubsub.core.kwargs.*',
'wx.lib.pubsub.core.*',
'dbhash',
'platform']
)
Run Code Online (Sandbox Code Playgroud)
我不确定我还会在这里放什么.'CGI'?'随机'?

我创建了一个conda环境,所以我可以在Mac上使用runsnakerun,如下所示:
conda create -n runsnake wxPython
source activate runsnake
pip install runsnakerun
Run Code Online (Sandbox Code Playgroud)
但是,当我现在尝试使用runsnake时,我得到:
$ runsnake
This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your Mac.
Run Code Online (Sandbox Code Playgroud)
我怎样才能让runnake工作?
我正在使用python(wxPython for UI)在windows 7上开发一个软件,pyinstaller是我用来打包的工具。但最近将 pyinstaller 升级到 3.1.1 后,tcl/tk目录中开始出现文件夹。并且 pyinstaller 2.1 捆绑了完全相同的源代码,因此找不到这样的文件夹,这应该是这样,因为我从未在任何地方使用过 tcl/tk。
我已经尝试过a.datas -= TOC([('tcl', None, 'DATA'), ('tk', None, 'DATA')]),但它不起作用。tcl/tk那么打包时如何排除呢?
我正在尝试使用 pip3 在 ubuntu 16.04 上为 python3 安装 wxPython,但是在下载了要求后,它卡在了安装中。我已经安装了这里提到的所需的开发包及其依赖项。

我正在运行 Ubuntu 18.04.3 LTS,Python 3.6.9,wx.version: 4.0.7.post2 gtk3 (phoenix) wxWidgets 3.0.5
当我导入 wx.adv 时,出现错误
导入错误:libSDL2-2.0.so.0:无法打开共享对象文件:没有这样的文件或目录
如果我运行:
sudo apt-file search libSDL_image-1.2.so.0
Run Code Online (Sandbox Code Playgroud)
我得到:
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0.8.4
Run Code Online (Sandbox Code Playgroud)
怎么了?
wxpython ×10
python ×8
anaconda ×1
cgi ×1
conda ×1
constructor ×1
desktop ×1
macos ×1
matplotlib ×1
pyinstaller ×1
python-3.x ×1
sqlalchemy ×1
tkinter ×1
ubuntu ×1
ubuntu-18.04 ×1