裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia で出生性比をプロットする

2021年11月27日 | ブログラミング

奥村先生の Python のページで,出生性比のグラフの描き方が紹介されていた
https://oku.edu.mie-u.ac.jp/~okumura/python/sexratio.html

Julia でもやってみた。

CSV ファイルをダウンロードして保存した段階で,エディタで開いて,utf-8 ファイルにした(そうしないと missingstring="…" が効かなかった)。

その他,1944, 1945, 1946 年のデータは全項目欠測値だけど,エディタで開いた時点で3行挿入したほうが簡単だった気がする(プログラム3行も消費した)。
データの先頭11行は,まあ,削らないでそのまま使った。

using DataFrames, CSV, Dates, Plots
df = CSV.read("/Users/foo/Downloads/mb010000.csv", DataFrame,
     skipto=12, # データ開始行
    
header=["年","出生数_総数","出生数_男","出生数_女","出生率","出生性比","合計特殊出生率"], # 列名
    
missingstring="…"); # 欠損値定義

df_missing = DataFrame(年=["1944", "1945", "1946"]); # 欠損値のデータフレーム
df2 = join(df, df_missing, on=:年, kind=:outer); # R での merge  相当
df3 = sort(df2, :年); # ソートしないといけない
df3.出生性比 = df3.出生数_男 ./ df3.出生数_女; # もとの出生性比は100倍して小数点以下一桁で丸めてある
df3.年d = DateTime.(parse.(Int, df3.年)); # 年を DateTime 型に変換する
pyplot(grid=false, color=:black, label="")
tmtick = range(DateTime("1900-01-01"), df3.年d[end], step=Year(10)); # 横軸を描くために面倒なことを
tmticks = Dates.format.(tmtick, "yyyy"); # 横軸を描くために面倒なことを
plot(df3.年d, df3.出生性比, linewidth=0.5, title="年次別出生性比",
    xticks=(tmtick, tmticks), tickdirection=:out); # 折れ線グラフ
scatter!(df3.年d, df3.出生性比, marker=(3, 0.6, :blue, stroke(0, :blue))) # データ点は重ね描き

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 折れ線グラフと棒グラフ--ど... | トップ | Julia V1.7.0 正式リリース 2... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事