私は1948年の月平均気温を含むnetCDFファイルを持っています。割り当てには、データポイントを1つ選択し、 12月、1月、2月、3月の月を表示し、表示します。リスト内包表記を使用して辞書のリストに格納されたプロットデータ
私はすでにデータを解凍してきたし、ここに示したように、私はそれが、辞書のリストに収集した12月については
:1月、2月に対応する
decemberMeans = [
{'year': 1948, 'temp': 271.24}, {'year': 1949, 'temp': 271.28},
{'year': 1950, 'temp': 268.52}, {'year': 1951, 'temp': 269.63},
...,
{'year': 2015, 'temp': 277.23}, {'year': 2016, 'temp': 271.25}
]
データを、そして3月は同じように構成されています。
私の次のステップはそれをプロットすることです。私は、各データセットについて同じグラフに1行をプロットしなければなりません。リスト内包表記を使ってそれを行います。今、私のプロットのコードは次のようになります。
import matplotlib.pyplot as plt
plt.figure(1)
plt.hold(True)
plt.plot([data['years'] for data in decemberMeans], \
[data['temp'] for data in decemberMeans], 'k-')
plt.plot([data['years'] for data in januaryMeans], \
[data['temp'] for data in januaryMeans], 'r-')
plt.plot([data['years'] for data in februaryMeans], \
[data['temp'] for data in februaryMeans], 'b-')
plt.plot([data['years'] for data in marchMeans], \
[data['temp'] for data in marchMeans], 'y-')
plt.grid(True)
plt.show()
plt.close()
それはうまくプロットが、私は私のリストの内包のすべてが本当に冗長であることがわかります。辞書の値を1つの鳥の餌食に入れて、それぞれのセットに対してdata['...'] for data in list
を2回書く必要がないようにする方法がありますか?
P.S. - 私はこれを書いているので、プロットを行う関数を書くことができたことに気付きました(この記事を書くよりも時間がかかりそうですが)。私はまだ知りたいのです。すべてのおかげで、事前に!
ねえ、マジックジップはいいアイデアです!ありがとう!ほとんどの機能を使って、間違いなくそれを追加します。 – nat5142