首先,我的目标是:在matplotlib中生成一个条形图,然后从Django模型中获取数据。你知道吗
为了得到一组解释过的数据,我必须将它们与另一个模型的数据相乘。这就是为什么我不能通过queryset进行排序(至少我认为我不能)
这给我留下了两个列表(每年):标签-字符串-和数据-浮动-
很简单,我可以用sort(data)
对数据进行排序,但这显然不会改变标签的顺序。你知道吗
我想到的第一件事是字典,就像元组一样是不变的。你知道吗
有一种订购字典的方法collections是一个很棒的图书馆,但让我烦恼的是,我必须打包一本字典,而不是通过
OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
然后在两个列表中再次解包,将其交给函数
matplotlib.bar(x, values, labels=keys)
这似乎对我来说是非常不雅的,我必须这样做4次(4年的数据)
你将如何解决这个问题?你知道吗
编辑: 关于Django模型的更多信息(草图;)
class EnergieSource(Models):
name = models.CharField(max_length=30)
co2 = models.FloatField('CO²-Equivalent')
class EnergieUsage(Models):
date = models.DateField('Year')
energiesource = models.ForeignKeyField(EnergieSource)
usage = models.FloatField('Yearly use in MWh')
不,我将usage
与co2
相乘,并根据能量来源改变数据。你知道吗
多亏了Jornsharpe和martin,我找到了答案,我想和大家分享一下:
给你-从大到小排序-我完全惊讶!你知道吗
我认为另一种可能的解决方案是使用numpy阵列:
相关问题 更多 >
编程相关推荐