小编Joe*_*cht的帖子

Pandas timeseries绘制设置x轴主要和次要刻度和标签

我希望能够为从Pandas时间序列对象绘制的时间序列图设置主要和次要xticks及其标签.

熊猫0.9"什么是新的"页面说:

"您可以使用to_pydatetime或为Timestamp类型注册转换器"

但我无法弄清楚如何做到这一点,以便我可以使用matplotlib ax.xaxis.set_major_locatorax.xaxis.set_major_formatter(和次要)命令.

如果我在不转换熊猫时间的情况下使用它们,则x轴刻度和标签最终会出错.

通过使用'xticks'参数,我可以将主刻度传递给pandas.plot,然后设置主刻度标签.我无法弄清楚如何使用这种方法进行次要滴答.(我可以在pandas.plot设置的默认次要刻度上设置标签)

这是我的测试代码:

import pandas
print 'pandas.__version__ is ', pandas.__version__
print 'matplotlib.__version__ is ', matplotlib.__version__    

dStart = datetime.datetime(2011,5,1) # 1 May
dEnd = datetime.datetime(2011,7,1) # 1 July    

dateIndex = pandas.date_range(start=dStart, end=dEnd, freq='D')
print "1 May to 1 July 2011", dateIndex      

testSeries = pandas.Series(data=np.random.randn(len(dateIndex)),
                           index=dateIndex)    

ax = plt.figure(figsize=(7,4), dpi=300).add_subplot(111)
testSeries.plot(ax=ax, style='v-', label='first line')    

# using MatPlotLib date time locators and formatters doesn't work with new
# pandas datetime index
ax.xaxis.set_minor_locator(matplotlib.dates.WeekdayLocator(byweekday=(1),
                                                           interval=1))
ax.xaxis.set_minor_formatter(matplotlib.dates.DateFormatter('%d\n%a'))
ax.xaxis.grid(True, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

84
推荐指数
1
解决办法
10万
查看次数

django基于类的视图 - UpdateView - 如何在处理表单时访问请求用户?

在Django的基于类的UpdateView中,我排除了用户字段,因为它是系统内部的,我不会要求它.现在将Django传递给表单的正确方法是什么.(我现在怎么做,是我将用户传递到表单的init然后覆盖表单的save()方法.但我敢打赌,有一种正确的方法可以做到这一点.像隐藏的领域或者那样的东西性质.

# models.py
class Entry(models.Model):
    user = models.ForeignKey(
                User,
                related_name="%(class)s",
                null=False
    )

    name = models.CharField(
                blank=False, 
                max_length=58,
    )

    is_active = models.BooleanField(default=False)

    class Meta:
        ordering = ['name',]

    def __unicode__(self):
        return u'%s' % self.name

# forms.py
class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        exclude = ('user',)

# views.py
class UpdateEntry(UpdateView):
    model = Entry
    form_class = EntryForm
    template_name = "entry/entry_update.html"
    success_url = reverse_lazy('entry_update')

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(UpdateEntry, self).dispatch(*args, **kwargs)

# urls.py
url(r'^entry/edit/(?P<pk>\d+)/$',
    UpdateEntry.as_view(),
    name='entry_update'
),
Run Code Online (Sandbox Code Playgroud)

django django-class-based-views

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

如何使用Django通用视图过滤表?

我正在尝试使用最常见/标准/推荐的Django 1.6方法创建具有分页,排序和过滤的表视图.这似乎是基于通用类的视图和django-tables2.我找到了至少两个不同的如何添加过滤的例子,一个用django-filters和crispy-forms,另一个用django_filters,但都没有包含完整的工作示例.当我遵循任何一种方法时,我都会陷入困境中.使用Nicolas Kuttler的脆弱方法,我有:

models.py

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

tables.py

import django_tables2 as dt2
from .models import Author

class AuthorTable(dt2.Table):
    class Meta:
        model = Author
Run Code Online (Sandbox Code Playgroud)

如果我理解正确的话,PagedFilteredTableView是一个泛型类,然后我继承AuthorView,而不是另一个例子,其中FilteredSingleTableView,我认为应该被理解为类似,如果Author是表,AuthorFilteredSingleTableView.

views.py

from .tables import AuthorTable
from .models import Author
from django_tables2 import SingleTableView

class PagedFilteredTableView(SingleTableView):
    """
    Generic class from http://kuttler.eu/post/using-django-tables2-filters-crispy-forms-together/
    which should probably be in a utility file
    """
    filter_class = None
    formhelper_class = None
    context_filter_name = 'filter'

    def get_queryset(self, **kwargs):
        qs = super(PagedFilteredTableView, self).get_queryset()
        self.filter …
Run Code Online (Sandbox Code Playgroud)

django django-filter django-class-based-views django-tables2

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