我正在使用pandas从数据框生成一个图,我想将其保存到文件中:
dtf = pd.DataFrame.from_records(d,columns=h)
fig = plt.figure()
ax = dtf2.plot()
ax = fig.add_subplot(ax)
fig.savefig('~/Documents/output.png')
Run Code Online (Sandbox Code Playgroud)
似乎最后一行,使用matplotlib的savefig,应该可以解决问题.但该代码产生以下错误:
Traceback (most recent call last):
File "./testgraph.py", line 76, in <module>
ax = fig.add_subplot(ax)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/figure.py", line 890, in add_subplot
assert(a.get_figure() is self)
AssertionError
Run Code Online (Sandbox Code Playgroud)
或者,尝试直接在绘图上调用savefig也会出错:
dtf2.plot().savefig('~/Documents/output.png')
File "./testgraph.py", line 79, in <module>
dtf2.plot().savefig('~/Documents/output.png')
AttributeError: 'AxesSubplot' object has no attribute 'savefig'
Run Code Online (Sandbox Code Playgroud)
我想我需要以某种方式将plot()返回的子图添加到图中以便使用savefig.我也想知道如果这或许与该做魔术的AxesSubPlot类的后面.
编辑:
以下作品(没有提出任何错误),但留下了一个空白页面图像....
fig = plt.figure()
dtf2.plot()
fig.savefig('output.png')
Run Code Online (Sandbox Code Playgroud) 我已经看到了SessionMaker的很多问题,但是这个问题略有不同.不知道为什么,但sqlalchemy不会让我的会话对象提交.
在我的应用程序中,我有一些代码可以:
views.py
rec = session.query(Records).filter(Records.id==r).first()
n = rec.checkoutRecord(current_user.id)
session.add(n)
session.commit()
Run Code Online (Sandbox Code Playgroud)
models.py:
class Records(UserMixin, CRUDMixin, Base):
__table__ = Table('main_records', Base.metadata, autoload=True)
def checkoutRecord(self,uid):
self.editing_uid = uid
self.date_out = datetime.now()
return self
def checkinRecord(self,uid):
self.editing_uid = uid
self.date_in = datetime.now()
return self
Run Code Online (Sandbox Code Playgroud)
该程序在commit()上解决,给出了上述异常.有趣的是,一些测试代码不导入烧瓶,但导入sqlalchemy工作正常,让我提交没有错误.
完整的堆栈跟踪:
Traceback (most recent call last):
File "/Users/bhoward/Envs/py27/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/bhoward/Envs/py27/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/bhoward/Envs/py27/lib/python2.7/site-packages/flask_login.py", line 663, in decorated_view
return func(*args, **kwargs)
File "/Users/bhoward/projects/PeerCoUI/mk2/peercoui/app/records/views.py", line 65, in select_view …Run Code Online (Sandbox Code Playgroud) 所以我的数据库包含一个项目列表:
items: item.id | item.title
Run Code Online (Sandbox Code Playgroud)
我有一个第二个表,它将许多标签与项目相关联:
tags: tag.id | item.id
Run Code Online (Sandbox Code Playgroud)
项可以具有与其相关联的若干标签(例如,5,20和25),因此对于标签表中的每个标签值将具有行.
我希望能够确定特定标记是否与项目相关联,而不会丢失所有其他标记数据.例如,
SELECT items.id, items.title
FROM items
INNER JOIN tags ON (tag.tag_id=items.id)
WHERE tag.id =27
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它消除了包含其他标记值的行(如果tag.id为27,则它不能是特定行上的任何其他值).
为了解决这个问题,我想使用ARRAY_AGG将单个标签号码汇总到一个数组中,我可以(应该)轻松测试成员资格的值.
SELECT items.id, items.title
FROM items
INNER JOIN tags ON (tag.tag_id=items.id)
GROUP BY items.id
HAVING ANY(ARRAY_AGG(tags.tag_id)=27)
Run Code Online (Sandbox Code Playgroud)
(我看到这篇文章关于你如何不能用ARRAY_AGG选择一个AS命名列)
但是上面的代码在HAVING子句的ANY部分产生语法错误.
思考?
我有一种情况需要构建一组不同版本的Android源代码的静态副本.
简单地做一个repo init -b $version; repo sync将永远init需要(需要交互,并且同步将浪费我的跨版本带宽).
我目前的设置是下载一个基本版本(比如1.6_r1),将其复制到一个新文件夹(android-1.6_r2),然后重新运行init并同步(repo init -b android-1.6_r2; repo sync).有时同步失败,错误如下:
ndk/build/platforms/android-3/arch-arm/usr/incl
中止
同步工作树:100%(153/153),完成.错误:开发/:平台/开发结账caf83cb2b0ffde1a4cfb7cb258cbe012e283d9e1在android-2.1_r2.1s上重新同步返回FAIL
我发现一些有类似错误的帖子表明这可能是因为repo与文件系统中的"已更改"文件不同步,但我想知道我的错误是否是由repo的鼻子下更改版本引起的.
这是更改存储库版本的正确方法吗?更一般地说,是否有时间/带宽有效的方式将android-1.6_r1存储库转换为android-1.6_r2?
我正在构建一个脚本,可以下载几个版本的Android.我不想从头开始拉动每个存储库,而是希望保留一个基本存储库,我可以在同步之前将其重新初始化为正确的版本(然后将结果复制到安全目录中).
但是,repo init始终会提示输入名称和电子邮件地址,从而挫败我的脚本尝试.我查看了repo源并尝试了像-q这样的选项,但似乎提示来自底层的git命令.
关于在没有交互的情况下进行repo init -b的任何建议?
我有一个简单的无线电字段,它总是导致validate_on_submit返回false.当我打印form.errors时,看起来"无效的选择"作为无线电字段中的值传递,尽管coerce = int.
我不认为我正在破坏表格中返回的任何东西,我希望以正确的方式创造动态选择.我不明白为什么会失败.
以下是我的项目的相关部分 - 任何建议表示赞赏.
forms.py:
class SelectRecord(Form):
rid = RadioField("Record Select", choices=[], coerce=int,validators=[InputRequired()])
Run Code Online (Sandbox Code Playgroud)
views.py:
@mod.route('/select/', methods=('GET', 'POST'))
@login_required
def select_view():
form = SelectRecord(request.form)
if form.validate_on_submit():
rid = form.data.rid
if form['btn'] == "checkout":
# check out the requested record
Records.checkoutRecord(rid)
return render_template('/records/edit.html',rid=rid)
elif form['btn'] == "checkin":
Records.checkinRecord(rid)
flash("Record checked in.")
else:
mychoices = []
recs_co = session.query(Records.id).filter(Records.editing_uid == current_user.id). \
filter(Records.locked == True)
for x in recs_co:
mychoices.append((x.rid,"%s: %s (%s)" % (x.a, x.b, x.c, x.d)))
x = getNextRecord() …Run Code Online (Sandbox Code Playgroud) python ×3
android ×2
flask ×2
git ×2
repository ×2
matplotlib ×1
pandas ×1
postgresql ×1
sql ×1
sqlalchemy ×1
wtforms ×1