是否有可能使用有序字典或列表进行绘图,有序字典不起作用



我想绘制温度随时间的递减图。计算是正确的,我的问题是字典不能按顺序排列。我可以及时对列表进行排序。键=时间(1年,5年,10年等),值=温度。我想按键排序

drawtemperature={}
for i, tau in enumerate(years):
    for well in producers :
        Temperature=[]
            if len(reached) == 0:
                Temperature.append(T0)
            else: 
                 sumQ=well.flow/nbcontours*len(reached)
                 Tm=((well.flow-sumQ)*T0+sumQ*Ti)/well.flow
                 Temperature.append(Tm)   
           drawtemperature[tau]=Temperature
dc=[drawtemperature[k] for k in sorted(drawtemperature)]
for k in dc:
    pylab.plot(drawtemperature.keys(), drawtemperature.values())
pylab.show()

由于没有对字典排序,它的绘制方式错误。这个图形应该像活塞一样。我不能发布图片,因为我需要至少10个信誉(:

我知道我不能订购字典,我已经尝试过从集合中订购字典,但它不起作用。任何想法?

像这样?我假设您正在尝试按值

对字典进行排序。
pylab.plot(*zip(*sorted(dc.items(), key=lambda x:x[1])))

要切换轴,请使用

pylab.plot(*reversed(zip(*sorted(dc.items(), key=lambda x:x[1]))))

按键排序,只保留key=...

最新更新