小编jbb*_*med的帖子

在轴外移动matplotlib图例会使其被图框切断

我熟悉以下问题:

Matplotlib savefig与情节外的传奇

如何将传说从情节中删除

看起来这些问题的答案很有可能摆脱轴的精确收缩,以便传说适合.

然而,收缩轴并不是一个理想的解决方案,因为它使数据变得更小,使得它实际上更难以解释; 特别是当它的复杂和有很多事情发生时...因此需要一个大的传奇

文档中复杂图例的示例演示了对此的需求,因为其图中的图例实际上完全遮盖了多个数据点.

http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots

我希望能够做的是动态扩展图框的大小以适应不断扩大的图形图例.

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')
Run Code Online (Sandbox Code Playgroud)

请注意最终标签"逆棕褐色"实际上是如何在图框之外(看起来严重截止 - 而不是出版质量!) 在此输入图像描述

最后,我被告知这是R和LaTeX中的正常行为,所以我有点困惑为什么在python中这么难...有历史原因吗?Matlab在这件事上同样很差吗?

我在pastebin http://pastebin.com/grVjc007上有这个代码的(仅略微)更长版本

python matplotlib legend

205
推荐指数
3
解决办法
13万
查看次数

Matplotlib图例,跨列而不是向下添加项目

对于下面的简单图表,有没有办法让matplotlib填充图例,使其从左到右填充行,而不是第一列填充第二列?

>>> from pylab import *
>>> x = arange(-2*pi, 2*pi, 0.1)
>>> plot(x, sin(x), label='Sine')
>>> plot(x, cos(x), label='Cosine')
>>> plot(x, arctan(x), label='Inverse tan')
>>> legend(loc=9,ncol=2)
>>> grid('on')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib legend

31
推荐指数
1
解决办法
3万
查看次数

让PySide与matplotlib一起使用

我试过在SciPy网站上运行示例代码,但是我收到此错误:

Traceback (most recent call last):
  File ".\matplotlibPySide.py", line 24, in <module>
    win.setCentralWidget(canvas)
TypeError: 'PySide.QtGui.QMainWindow.setCentralWidget' called with wrong argument types:
  PySide.QtGui.QMainWindow.setCentralWidget(FigureCanvasQTAgg)
Supported signatures:
  PySide.QtGui.QMainWindow.setCentralWidget(PySide.QtGui.QWidget)
Run Code Online (Sandbox Code Playgroud)

我正在构建一个简单的科学数据记录器,最终将用于商业应用程序,所以我真的需要PySide的LGPL和绘图功能.有没有人有如何使这个工作或替代绘图包或想法的经验?

提前致谢.

python matplotlib pyside

21
推荐指数
3
解决办法
2万
查看次数

定义具有许多属性的Python类 - 样式

我有一个具有许多属性的类.有人可以澄清设置属性如下面的a,b,c和x,y,z之间的区别.我明白,如果你参与进来,他们显然必须在init中,只是为了设置一个数字默认变量,这是首选的,有什么优缺点.

class Foo(object):
    a = 'Hello'
    b = 1
    c = False
    def __init__(self):
        self.x = 'World'
        self.y = 2
        self.z = True
Run Code Online (Sandbox Code Playgroud)

python styles class

8
推荐指数
2
解决办法
1374
查看次数

在PySide + SQLAlchemy中设计QTableView的"模型"

我的问题是如何设置一个可以从PySide的QTableView类访问的SQLAlchemy声明模型.

我只是试图为Object Relational教程实现一个前端

不幸的是,我有几点困惑.我会试着解释一下我在哪里.

我有一个遵循SQLAlchemy教程,我有两个相关的表,可以操作/查询没有问题.尝试建立QTableView类显然需要使用我自己的模型的setData()方法,或者使用默认模型需要setItem()方法.

所以问题是如何设计模型.我认为这意味着定义查询/修改数据库的这两种方法之一.我不知道这样做的正确方法.

该模型应该像用户名和姓氏一样在几行上重复,直到显示所有地址,然后转到下一个用户.我可以使用嵌套的for循环在提示符下打印它,但我不认为制作一个大的列表是要走的路,因为这似乎打败了首先拥有数据库的重点......

我也不知道当数据库增长时会发生什么,整个表是否被实例化并保存在内存中,或者当用户滚动时Qt是否加载行和列?

很多文字对不起,但试图说清楚.如果还有其他我可以添加的内容请告诉我.或者,如果我完全走错了轨道......

from PySide import QtCore, QtGui
from sqlalchemy import Column, Integer, String, Text, Sequence, ForeignKey, Date, Boolean, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship, backref, aliased
import datetime


engine = create_engine('sqlite:///reminder.db')

Base = declarative_base()

class User(Base):
    __tablename__ = 'users_db'
    id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
    lastname = Column(String)
    firstname = Column(String)
    contact = Column(String)
    history = Column(Text)
    notes = Column(Text)

    addresses = …
Run Code Online (Sandbox Code Playgroud)

python sql sqlalchemy pyside

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

在 Markdown 中禁用 Sublime Text 3 html 自动完成

我正在用学术 Markdown 写散文。当从我的文档中推荐单词时,自动完成非常有用,但 HTML 标签非常烦人。

如何停止 ST3 以停止在我的降价文件中建议 HTML 标签。

我试过 "auto_complete": false 但这实际上并没有禁用自动完成。不知道为什么。

markdown autocomplete sublimetext3

7
推荐指数
2
解决办法
853
查看次数

关键字:is和=在python中有什么区别

根据python样式指南,python关键字is应该用于代替==运算符.

然而,它们并不总是与此处所示完全相同.为什么?实际差异是什么,适当的用法是什么?

import unittest

class testIS(unittest.TestCase):
    def test_is(self):
        self.assertEqual(1,1)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

哪个有效...但以下不...

import unittest

class testIS(unittest.TestCase):
    def test_is(self):
        self.assertEqual(1,1)

if __name__ is '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

python syntax keyword

3
推荐指数
2
解决办法
343
查看次数

如何取消选择PySide QTableWidget中的项目

真的很简单的问题,但我似乎无法在文档中看到答案.

我有一个有效的QTableWidget,我需要清除选择.用例是在向数据模型添加行时我不希望用户将新行与所选内容相关联,因此需要清除选择.

python pyside

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