最速怪談選手権

下記のデータがある場合、 0.81649、 0.83467、 0.85175等のリストの2番目のデータだけをトータル”1”に規格化するには、どうしたら良いでしょうか?
要するに、0.1から10までにおいて、リストの2番目のデータの全体の中の比率を、グラフ化したいです。

data = {{0.1, 0.81649}, {0.15, 0.83467}, {0.2, 0.85175}, {0.25,
0.8675}, {0.3, 0.88289}, {0.35, 0.89691}, {0.4, 0.90927}, {0.45,
0.92037}, {0.5, 0.92973}, {0.55, 0.93697}, {0.6, 0.94416}, {0.65,
0.94937}, {0.7, 0.95476}, {0.75, 0.95975}, {0.8, 0.96421}, {0.85,
0.96878}, {0.9, 0.97353}, {0.95, 0.97856}, {1, 0.98347}, {1.5,
1.0321}, {2, 1.067}, {2.5, 1.0748}, {3, 1.0658}, {3.5, 1.052}, {4,
1.0385}, {4.5, 1.0266}, {5, 1.0148}, {5.5, 1.003}, {6,
0.98907}, {6.5, 0.97294}, {7, 0.95438}, {7.5, 0.93379}, {8,
0.91177}, {8.5, 0.88931}, {9, 0.86725}, {9.5, 0.84594}, {10,
0.82487}};

質問者からの補足コメント

  • つらい・・・

    途中までわかった、、

    tota1 = Total[data[[All, 2]]]

    data1 = data[[All, 2]]/tota1


    でも疲れた、、

      補足日時:2022/09/14 14:19
  • 図は次の通りとなりました。

    「Mathematica データの規格化」の補足画像2
    No.2の回答に寄せられた補足コメントです。 補足日時:2022/09/14 18:21

A 回答 (2件)

データをプロットしてみましたか?



トータル1にするってことは、累積和グラフは右端で1になるということです。

粒度を揃えるとは、添付図の上の赤点のようにデータを作り変えるということです。

下の図が累積和グラフです。単調増加ですね。

粒度を揃えないと、最初にググッと上昇するグラフになります。それでも良ければ、補足の方法でOKです。
「Mathematica データの規格化」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

助かりました

ご回答ありがとうございます。

考えました。その結果、次の通りとなりました。

tota1 = Total[data[[All, 2]]]
data1 = data[[All, 1]]
data2 = data[[All, 2]]/tota1
data3 = Thread[{data1, data2}]

お礼日時:2022/09/14 18:19

リスト1番目の数値の粒度(区間幅)が前半と後半で違うので、比率を出しても意味が無いです。



一旦、粒度(区間幅)を揃える必要があります。前半・後半どちらの粒度に揃えたいですか?

前半の粒度に揃えたいなら、後半はスプラインなどを使って補間する必要があります。

いずれにしても、このまま比率を求めても、累積グラフが、現在の曲線を反映するようになりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!