小编Van*_*ine的帖子

我怎样才能在一种布局中排列多个pyplot数字?

我创建了一个软件来进行信号分析.有多个函数,每个函数最终显示一个包含标签,plot,axhspan,axvspan等的复杂图形......通常,这些函数是单独调用的.我的每个函数都返回一个figure对象,例如我可以用pdf保存.

def Myfunction1(self):
    fig = pyplot.figure()
    ...do somestuff, create my figure
    pyplot.show()
    fig.savefig('C:\MyFigurefolder\figure1.pdf', dpi=300)
    return fig

def Myfunction2(self):
    fig = pyplot.figure()
    ...do some other stuff, create my 2nd figure
    pyplot.show()
    fig.savefig('C:\MyFigurefolder\figure2.pdf', dpi=300)
    return fig
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一种"总结图",通过进行元分析,将多个数字汇集在一起​​,并将它们保存在最终的pdf中.我真的不知道该怎么做.有没有办法使用整个图形对象(或者可能是多个单独的pdf)来做我的数字?

就像是:

def FinalFigure(self):

    final = A_Kind_Of_Layout_Or_A_Figure_or_something

    a=self.Myfunction1()
    b=self.Myfunction2()

    Action_to_arrange_a_and_b_like_gridspec

    final.savefig('C:\MyFigurefolder\FinalFigure.pdf', dpi=300)
Run Code Online (Sandbox Code Playgroud)

python matplotlib

7
推荐指数
1
解决办法
7205
查看次数

如何在PyQT应用程序中集成Ipython控制台

我正在为我的实验室开发PyQt软件.在这个软件中,我正在加载不同类型的RAW并分析来自mySQL数据库的数据(通常是在数组中).

我想在Widget中集成一个Iython控制台,这样我就可以轻松地与这些数据进行交互.

我在使用Ipython 0.13时遇到了一些困难.
这是我已经拥有的(整个代码很长,所以我只显示包含小部件的部分,Ipython控制台和相应的导入行,如果你需要更多,请告诉我):

##I load everything useful to my application, including the following line
from IPython.frontend.qt.console.qtconsoleapp import IPythonQtConsoleApp

##then is my whole software
##here is a class containing the Graphical User Interface elements. A button call the following function. self.Shell_Widget is the widget containing the Ipython console, self.MainWindow is the application mainwindow
def EmbeddedIpython(self):
    """
    This function should launch an Ipython console
    """


    self.Shell_Widget = QtGui.QDockWidget(self.MainWindow) #Widget creation
    self.MainWindow.addDockWidget(4,self.Shell_Widget)
    self.Shell_Widget.setMinimumSize(400,420)

    console = IPythonQtConsoleApp() #Console Creation
    console.initialize()
    console.start()


    self.Shell_Widget.show() …
Run Code Online (Sandbox Code Playgroud)

pyqt ipython python-2.7

6
推荐指数
1
解决办法
1464
查看次数

由于BLOB字段(不能在另一个表中移动),MySQL查询速度很慢

我正在开发基于MySql数据库的PyQT软件.数据库包含一些记录的电信号,以及描述这些信号的所有信息(采样率,重新编码日期等).

有了一个想法,一个数据库包含10 000到10万行,总大小> 10Gb.所有这些数据都存储在专用服务器上.实际上,大多数数据都是信号本身,它位于名为analogsignal.signal的BLOB字段中(见下文)

这是数据库的体系结构:http://packages.python.org/OpenElectrophy/_images/simple_diagram1.png

我无法更改它(我可以添加列和索引,但我无法移动或删除现有列).

在软件中,我需要列出所有的analogsignal列(id,name,channel,t_start,sampling_rate),但analogsignal.signal除外,后者通过analogsignal.id调用.所以我正在做以下查询

SELECT block.id,block.datetime,segment.id,analogsignal.id,analogsignal.name,analogsignal.channel,analogsignal.sampling_rate,block.fileOrigin,block.info

FROM segment,block,analogsignal

WHERE block.id = segment.id_block

AND segment.id = analogsignal.id_segment

ORDER BY analogsignal.id

问题是,由于analogsignal.signal列的存在,我的查询很慢(如果请求不在缓存中,则> 10分钟).如果我正确理解正在发生的事情,则表格逐行读取,包括analogsignal.signal,即使analogsignal.signal不在SELECT字段中.

有没有人知道如何优化数据库或查询而不在另一个表中移动BLOB(我同意这将更合乎逻辑,但我不控制这一点).

谢谢!

这是AnalogSignal表的CREATE TABLE命令(从注释中拉出/格式化)

CREATE TABLE analogsignal 
  ( id int(11) NOT NULL AUTO_INCREMENT, 
    id_segment int(11) DEFAULT NULL,
    id_recordingpoint int(11) DEFAULT NULL, 
    name text, 
    channel int(11) DEFAULT NULL, 
    t_start float DEFAULT NULL, 
    sampling_rate float DEFAULT NULL, 
    signal_shape varchar(128) DEFAULT NULL, 
    signal_dtype varchar(128) DEFAULT NULL, 
    signal_blob longblob, Tag text, 
    PRIMARY KEY (id), 
    KEY ix_analogsignal_id_recordingpoint (id_recordingpoint), …
Run Code Online (Sandbox Code Playgroud)

mysql blob

5
推荐指数
1
解决办法
7860
查看次数

标签 统计

blob ×1

ipython ×1

matplotlib ×1

mysql ×1

pyqt ×1

python ×1

python-2.7 ×1