我希望能够为从Pandas时间序列对象绘制的时间序列图设置主要和次要xticks及其标签.
熊猫0.9"什么是新的"页面说:
"您可以使用to_pydatetime或为Timestamp类型注册转换器"
但我无法弄清楚如何做到这一点,以便我可以使用matplotlib ax.xaxis.set_major_locator和ax.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) 在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 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