まつ@python初心者による初心者のためのpython講座

python初心者が初心者のために書く、python講座。 基本的には研究室内向けなの…

まつ@python初心者による初心者のためのpython講座

python初心者が初心者のために書く、python講座。 基本的には研究室内向けなので、データなどにはパスワードをかけます。 コードは参考にどうぞ、間違ってたらごめんね

最近の記事

<解答>課題7:地図投影図を描く

ここでは、課題7の解答を書く。 (1) 正距円筒図法 (PlateCaree)の地図を投影するimport matplotlib.pyplot as pltimport cartopy.crs as ccrsimport cartopy.feature as cfeatureimport matplotlib.ticker as mtickerimport numpy as npfrom cartopy.mpl.ticker import LatitudeFormatter

    • <問題>課題7:地図投影図を描く

      ここでは課題7の問題について書く。 前回は等高線を描いたが、今回はそれを発展させて、地図投影をして、そこに等高線を描く問題である。 地図投影の種類地図の図法は様々である。 このサイトを参照、ついでにpythonでのざっくりした描き方も載っている。 この中で幣研究室でよく用いる図法は、いわゆる「地図」っぽいの正距円筒図法 (PlateCaree)と、平射方位図法, ステレオ図法(Stereographic, NorthPolarStereo, SouthPolarStereo

      • 課題5,6を終えた人へ

        課題5では折れ線、課題6では等高線を描く練習をした。 これで、幣研究室で描く図の種類をほぼすべて描くことができる。 折れ線グラフを描くことができれば、棒グラフや散布図もほぼ同様の方法で描くことができる。 課題6のような等高線を描くことができれば、対数軸ではない普通の軸の等高線なんて余裕である。 日付軸と等高線を組み合わせれば、時間高度断面図や時間緯度断面図、ホフメラー図など多彩な切り取り方をした時間変化を描くことができる。 なにしろここまでで、調べて問題点を解決しながらp

        • <解説・解答>課題6:緯度高度断面の等高線

          今回は課題6の解答・解説について書く。 (1)の解答解説(1)の解答コードは、以下のようである。 # %%# problem6-(1)#!/usr/bin/env python3import matplotlib.pyplot as pltimport numpy as np# MERRA2 各日 各波数year=20200204# タイトル設定file_U=r"ファイルの名前"# ファイル読み込みU=np.loadtxt(file_U)# 領域作成fig=plt.fig

          <ヒント>課題6の(4):緯度高度断面の等高線

          今回は、課題6の(4)についてのヒントを書く。 (4)の(3)からの変更点は、等高線が塗りつぶし等高線(陰影)になったことであるので、それについて書く。 とりあえず塗りつぶす今まで等高線を描くときは、plt.contourを使ってきた。 とりあえず色を塗るだけならば、ここにfを加え、plt.contourfとすればよい。 ax.contourf(X, Y, U)# あるいはplt.contourf(X, Y, U) ただしこれだと、思い通りに色を設定できないので、次以降

          <ヒント>課題6の(4):緯度高度断面の等高線

          <ヒント>課題6の(3):緯度高度断面の等高線

          ここでは、課題6の(3)のヒントを描く。 (2)からの変更点は、以下の通りである。 ・等高線の間隔を10に変更。 ・等高線の色を黒に変更。(俺の好み) ・等高線に数字のラベルをつけた。 ・x軸の表示範囲を40N-80Nに変更。 ・y軸を対数軸にして、表示範囲を100hPa-0.1hPaに変更 ここでも、今までに出てきていないことについて、ヒントを描く。 等高線の間隔の指定等高線の間隔の指定の方法はいくつかある。 例えば、このサイトに載っているように、描画範囲などを10段階

          <ヒント>課題6の(3):緯度高度断面の等高線

          <ヒント>課題6の(2):緯度高度断面の等高線

          今回は、課題6の(2)のヒントについて書く。 (1)からの変更点は、以下の通りである。 ・格子点を指定して等高線を描く。 ・x軸の範囲を-90から90、y軸の範囲を1000から0.1に設定 ・軸ラベル追加 ・x軸の目盛りの表示を指定 このうち、軸の範囲指定とラベル追加は課題5と同様なのでヒントを省略し、それ以外についてのヒントを書く。 格子点を指定して等高線を描くこちらのサイトなど、「python 等高線」とググって出てくるサイトを参照すると、「格子点を指定する」という意

          <ヒント>課題6の(2):緯度高度断面の等高線

          <ヒント>課題6の(1):緯度高度断面の等高線

          ここでは、課題6の(1)のヒントについて書く。 (とは言っても、ほとんど解答である) 配列の形の確認まず、課題5と同様に、以下のようにするとデータを読み込むことができる。 import numpy as npfile_U=r"ファイル名"# ファイル読み込みU=np.loadtxt(file_U) 今回は、「U」という配列名でデータを読み込んだ。 (本当はpdで読んだりした方が、わかりやすいのかもしれない) <問題>でこのデータの形状(何次元か、要素数はいくつか、など)

          <ヒント>課題6の(1):緯度高度断面の等高線

          <問題>課題6:緯度高度断面の等高線

          今回は課題6の問題を書きます。 テーマはタイトルの通りです。 前回は一次元量を使って折れ線グラフを書きましたが、今回は二次元量を描きます。 データの説明最初に注意書きであるが、今回使うデータは本来はy方向は対数軸をとって描くべきものである。 最初の方の問題では対数軸は用いずに描画を行うので、あまりきれいな図ではない。 今回のデータは、2020年2月4日において帯状平均した東西風についての2次元データである。 形状は、(42, 361)であり、1次元目は高度、2次元目は緯度

          <問題>課題6:緯度高度断面の等高線

          plt・ax問題

          課題5で折れ線を描くときに調べながらやった人は、もしかしたら以下のような二種類の描き方を見たかもしれない。 # plt. で始まるやつplt.plot# ax. で始まるやつax.plot .plotだけでなく、タイトルを書くときや目盛りを調整するときなどに、plt.で始まるもの、ax.で始まるものがある。 かく言う僕も、これらの何が違うかを超ちゃんと理解しているわけではないが、このサイトなどを見ると理解できるかもしれない。 ざっくり言うと、流派のようなものが違う。

          <解答>課題5:折れ線グラフ

          ここでは、課題5の解答を書きます。 解説は各課題の<ヒント>を参照してください。 (1)の解答は以下の通りです。 # problem_4-1#!/usr/bin/env python3import matplotlib.pyplot as pltimport numpy as np# データ読み込みfile=r"zonalT-6080-2020.txt"myfile=open(file)zonalT=np.loadtxt(file)myfile.close()# 領域作成

          <ヒント>課題5の(3):折れ線グラフ

          ここでは、課題5の(3)のヒントを書く。 以下に、(2)からの改善点を書く。 ・タイトルをさらに変更。帯状平均の記号をつけた。 ・平均値を黒の水平線で追加。 ・凡例を追加。 ・軸ラベルを追加。 ・線の太さを変更。(太さを3にした) このうち、今回は一つ目のヒントを書く。 二つ目以降は、検索して頑張ってみてほしい。 ・タイトルをさらに変更、帯状平均の記号ここでの問題は後者の「帯状平均の記号」である。 matplotlibのラベルなどで数式を書く際は。LaTeXの書き方を利用

          <ヒント>課題5の(3):折れ線グラフ

          <ヒント>課題5の(2):折れ線グラフ

          ここでは、課題5の(2)のヒントについて書く。 (1)からの改善点をもう一度以下に示す。 ・タイトルをつける ・x軸とy軸を描く範囲を指定 ・x軸を日付軸に変更 ・y軸の目盛りの指定 ・灰色点線のグリッド線を追加 これらの追加点はすべて、検索すると出てくる。 上の4つのうち、「・x軸を日付軸に変更」以外は、検索したものを利用したら、できると思う。 調べてやる練習として、頑張ってみよう。 そこで、今回のヒントは、日付軸について書く。 今回使うライブラリは、以下の二つである

          <ヒント>課題5の(2):折れ線グラフ

          <ヒント>課題5の(1):折れ線グラフ

          ここでは、課題5の(1)のヒントについて書く。 matplotlibをimportしようpythonの描画ライブラリで最も有名なのが、matplotlibだろう。 ちなみに、他にもseabornやplotlyなどある。 私はまだmatplotlibしか使えないので、それについて書く。 numpyのときのように、以下のようにimportしよう。 import matplotlib.pyplot as plt これも、かなり一般的なimportである。 データを読もうデ

          <ヒント>課題5の(1):折れ線グラフ

          <問題>課題5の(1)~(3)::折れ線グラフ

          今回は課題5の問題を書きます。 課題5のテーマは、「折れ線グラフを描く」です。 (1) このデータをダウンロードして読み込み、画像のようなシンプルな折れ線グラフを描きなさい。 なお、データは研究室内用のパスワードつきです。 内容は、30hPa面で北緯60度から北緯80度で平均した、2019/11/1から2020/3/30の気温変化である。 具体的にすべき操作は、以下の通りである。 ・ファイルを読み込む。 ・図の領域を作成する。 ・x座標を作成する。 ・描画する。 ・図を保存

          <問題>課題5の(1)~(3)::折れ線グラフ

          課題5以降について

          ここまで、計算などについての課題が4つあった。 これで、第一フェーズが終了したといえるだろう。 課題5以降の第二フェーズでは、主に描画の方法についての課題にしようと思う。 本来であればもう少し複雑な計算や配列操作を学んでから、描画をした方がいいのかもしれないが、あえてこの順番にしたい。 その理由は以下の3つである。 ・計算よりも、目に見える描画をした方が面白いと思うから。 ・複雑な計算をしたとしても、描画ができないと正しく計算ができているかどうかの確認をするのが難しいから