裏 RjpWiki

文字通り,RjpWiki の裏を行きます
R プログラム コンピュータ・サイエンス 統計学

Julia に翻訳--022

2021年03月04日 | ブログラミング

#==========
Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。
以下のプログラムを Julia に翻訳してみる。

ローレンツ曲線(ジニ係数)
http://aoki2.si.gunma-u.ac.jp/R/Gini-index.html

ファイル名: giniindex.jl  関数名:giniindex

翻訳するときに書いたメモ

特に難しいところはなかった。

==========#

using Plots

function giniindex(y, main="", xlab="", ylab="")
    all(y .>= 0) || error("all y must be positive")
    n = length(y)
    sort!(y)
    y = cumsum(y)
    y = vcat(0, y ./ y[end])
    x = range(0, 1, length=n+1)
    pyplot()

    p = plot(x, y, color=:blue, grid=false, tick_direction=:out,
             aspect_ratio=1, size=(600, 600), label="",
             title=main, xlabel=xlab, ylabel=ylab)
    plot!([0, 1, 1, 0, 0, 1], [0, 0, 1, 0, 1, 1], color=:black, label="")
    display(p)
    return 2sum(x .- y) / n
end

x = [3, 4, 4, 5, 5, 5, 5, 6, 6, 7]
giniindex(x)

コメント   この記事についてブログを書く
« Julia に翻訳--021 | トップ | Julia に翻訳--023 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

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