裏 RjpWiki

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

Julia に翻訳--023

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

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

パレート図
http://aoki2.si.gunma-u.ac.jp/R/Pareto.html

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

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

縦軸を 2 つ使うのは,Julia ではできない状態が長く続いているようだ。しかたないので自分で描く。

==========#

using Plots

function pareto(x; name="", ymax=sum(x), sortflag=true, col=:blue, lwd=1,
                main="", xlab="", ylab="度数",  ylab2="累積%")
    !sortflag || sort!(x, rev=true)
    pyplot()
    n = length(x)
    total = sum(x)
    plt = bar(x, bar_width=1, ylims=(0, ymax), color=col, alpha=0.2,
              grid=false, tick_direction=:out, xlims=(0, n+2),
              xlabel=xlab, ylabel=ylab, title=main, label="")
    plot!(1.5:n+0.5, cumsum(x), linewidth=lwd, label="")
    xticks!(1:n, name)
    # 右の軸を描く
    plot!([n+1, n+1], [0, total], color=:black, label="")
    for i = 0:0.1:1
        plot!([n+1, n+1.05], [i*total, i*total], color=:black, label="")
        annotate!(n+1.05, i*total, text(" "*string(Int(100i)), 8, :left))
    end
    annotate!(n+1.8, total/2, text(ylab2, rotation=90, 11))
    display(plt)
end

x = [56, 15, 38, 8, 10, 4, 2, 2, 1, 1];
name = ["つや消え", "気泡", "異物", "ふくれ", "すりきず", "汚れ",
    "割れ", "打ちきず", "凹凸", "ながれ"];
pareto(x, name=name, xlab="樹脂部品の不良原因")

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

コメントを投稿

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

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