1

時間の経過とともに減少する温度をプロットしたい。計算は正しいです。私の問題は、辞書が正しくないことです。リストを時間通りに並べ替えることができます。キー=時間(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 の評判が必要なため、画像を投稿できませんでした(:

私は辞書を注文できないことを知っています。私はすでにコレクションから OrderedDict を試しましたが、うまくいきません。何か案が?

4

1 に答える 1

3

このようなもの?辞書を値でソートしようとしていると思います

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

軸を切り替えるには、これを使用します

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

キーで並べ替えるには、そのままにしておきkey=...ます

于 2013-06-05T09:15:13.753 に答える