小编mtc*_*tcg的帖子

Matplotlib:如何在使用日期时间轴绘图时跳过一个小时范围?

我有一个金融工具的逐笔报价数据,我试图使用matplotlib. 我正在使用pandas,并且数据是用DatetimeIndex.

问题是,当我尝试绘制多个交易日时,我无法跳过市场收盘时间和第二天开盘之间的时间范围(参见示例),这当然是我不感兴趣的。

有没有办法让 matplotlib 忽略这一点,而只是将结束语与第二天的开盘“粘”在一起?我试图传递一个自定义的时间范围:

plt.xticks(time_range)
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。任何想法如何做到这一点?

# Example data
instrument = pd.DataFrame(data={
    'Datetime': [
        dt.datetime.strptime('2018-01-11 11:00:11', '%Y-%m-%d %H:%M:%S'),
        dt.datetime.strptime('2018-01-11 13:02:17', '%Y-%m-%d %H:%M:%S'),
        dt.datetime.strptime('2018-01-11 16:59:14', '%Y-%m-%d %H:%M:%S'),

        dt.datetime.strptime('2018-01-12 11:00:11', '%Y-%m-%d %H:%M:%S'),
        dt.datetime.strptime('2018-01-12 13:15:24', '%Y-%m-%d %H:%M:%S'),
        dt.datetime.strptime('2018-01-12 16:58:43', '%Y-%m-%d %H:%M:%S')
    ],
    'Price': [127.6, 128.1, 127.95, 129.85, 129.7, 131.2],
    'Volume': [725, 146, 48, 650, 75, 160]
}).set_index('Datetime')

plt.figure(figsize=(10,5))
top = plt.subplot2grid((4,4), (0, 0), rowspan=3, colspan=4)
bottom = plt.subplot2grid((4,4), (3,0), rowspan=1, colspan=4)
top.plot(instrument.index, instrument['Price'])
bottom.bar(instrument.index, instrument['Volume'], …
Run Code Online (Sandbox Code Playgroud)

python datetime matplotlib pandas

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

SQLalchemy - 来自查询的模型

我们有一个sqlalchemy用作 ORM的应用程序。除了映射表,我们还用它来映射现有的数据库视图,效果很好。

但是,我们找不到将自定义查询映射到模型的简单方法。例如,假设我们有一个像这样的报告:

q = session.query(
    Table1.field1, Table2.field2, func.sum(Table2.field3).label('sum')
).join(
    Table2, Table1.id == Table2.id
).filter(
    Table1.field1 == param1, Table1.field2 == param2
).group_by(
    Table1.field1, Table2.field2
) 
Run Code Online (Sandbox Code Playgroud)

我们想将此查询映射到一个类

class Report(CustomBaseModel):

    field1 = Column(Integer, primary_key=True)
    field2 = Column(Integer, primary_key=True)
    sum = Column(Numeric)
Run Code Online (Sandbox Code Playgroud)

我们CustomBaseModel已经实现了很多功能,因此能够在这里使用它会减少代码重复。例如,以这种方式使用声明性基将可以将relationships定义为其他表。

当然这个例子不起作用,因为"report"数据库中没有selectable 。

我尝试__table__ = q.subquery()Report课堂上进行设置。通过这种方式,查询可以工作,但无法定义列、关系或其他属性。也许有更好的方法来实现这一目标。

python sqlalchemy flask-sqlalchemy

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

Django在为null时过滤ForeignKey字段

假设我在Django中有两个表,TableA并且TableB.表A包含一些布尔字段,boolTableB包含一个外键字段for_fieldto TableA,它可以是Null.

class TableA(models.Model):
    bool = models.BooleanField()

class TableB(models.Model):
    for_field = models.ForeignKey('TableA', null=True)
Run Code Online (Sandbox Code Playgroud)

如果我想过滤表B,以便让所有的条目,其中for_field.boolTruefor_fieldNull,什么是实现这一目标的最短路径?

我正在使用.filter((Q(for_field__is_null=True) | Q(for_field__bool=True)),但我想知道是否有更短的代码.

django nullable foreign-keys

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

在Wagtail网站全球获取背景

我正在开发一个由几个半静态页面(主页,关于等)和博客组成的Wagtail项目.在主页中,我想列出最新的博客条目,我可以将以下代码添加到HomePage模型中:

def blog_posts(self):
    # Get list of live blog pages that are descendants of this page
    posts = BlogPost.objects.live().order_by('-date_published')[:4]

    return posts


def get_context(self, request):
    context = super(HomePage, self).get_context(request)
    context['posts'] = self.blog_posts()
    return context
Run Code Online (Sandbox Code Playgroud)

但是,我还想在页脚中添加最后3个条目,这是网站中所有页面的常见元素.我不确定最好的方法是什么 - 当然我可以为所有模型添加类似的代码,但也许有一种方法可以扩展Page类作为一个整体或以某种方式添加"全局"上下文?这样做的最佳方法是什么?

python django wagtail

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