<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier: ajout de la sortie
 * Copyright (C) INRIA - Serge Steer
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 * Copyright (C) 2018 - Samuel GOUGEON
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
        xml:lang="ja" xml:id="histplot">
    <refnamediv>
        <refname>histplot</refname>
        <refpurpose>ヒストグラムをプロットする</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>呼び出し手順</title>
        <synopsis>
            histplot(n, data [,normalization] [,polygon], &lt;opt_args&gt;)
            histplot(x, data [,normalization] [,polygon], &lt;opt_args&gt;)
            cf = histplot(..)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>引数</title>
        <variablelist>
            <varlistentry>
                <term>n</term>
                <listitem>
                    <para>正の整数 (クラスの数)</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>x</term>
                <listitem>
                    <para>
                        クラスを定義する増加方向のベクトル (<literal>x</literal>は2個以上の要素を有します)
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>data</term>
                <listitem>
                    <para>ベクトル (解析するデータ)</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>normalization</term>
                <listitem>
                    <para>論理値 (%t (デフォルト値) または %f)</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>polygon</term>
                <listitem>
                    <para>論理値 (%t または %f (デフォルト値))</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>&lt;opt_args&gt;</term>
                <listitem>
                    <para>
                        一連の命令 <literal>key1=value1,key2=value2</literal>
                        ,... を表します.ただし,<literal>key1</literal>,
                        <literal>key2,...</literal> は任意の<link linkend="plot2d">plot2d</link> の
                        オプションのパラメータ
                        (<literal>style,strf,leg, rect,nax, logflag,frameflag, axesflag </literal>)
                        とすることができます.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>cf</term>
                <listitem>
                    <para>
                        これは一連の命令 <literal>key1=value1,key2=value2</literal>,...を表します.
                        ただし, <literal>key1</literal>,
                        <literal>key2,...</literal> は,
                        <link linkend="plot2d">plot2d</link>の任意のオプションパラメータ
                        (<literal>style,strf,leg, rect,nax, logflag,frameflag, axesflag </literal>)
                        とすることができます.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>cf</term>
                <listitem>
                    <para>Computed frequencies (bins heighs)
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>説明</title>
        <para>
            この関数は,クラス<literal>x</literal>を用いて<literal>data</literal>ベクトル
            のヒストグラム(柱状グラフ)をプロットします.
            <literal>x</literal>のかわりにクラスの数<literal>n</literal>が指令された場合,
            クラスは等間隔で<emphasis>dx = (x(n+1)-x(1))/n</emphasis>として
            <emphasis>x(1) = min(data) &lt;  x(2) = x(1) + dx  &lt;  ...  &lt; x(n+1) = max(data)</emphasis>
            となるように選択されます.
        </para>
        <para>
            クラスはC1 = [x(1), x(2)]およびi &gt;= 2の時にCi = ( x(i), x(i+1)]
            により定義されます.
            <literal>data</literal>の総数 Nmax  (Nmax = length(data))となり,
            Ciに含まれる<literal>data</literal>要素の数 Niは
            <literal>normalization</literal>が true (デフォルト)の場合には
            <emphasis>Ni/(Nmax (x(i+1)-x(i)))</emphasis>となります.
            そうでない場合, <emphasis>Ni</emphasis> となります.
            正規化が行われる場合,このヒストグラムは以下の制約を満たします:
        </para>
        <para>
            <latex style="display"><![CDATA[ \int_{x(1)}^{x(n+1)}h(x)\,\mathrm{d}x=1 ]]></latex>
        </para>
        <para>
            任意の <link linkend="plot2d">plot2d</link> (オプション) パラメータを指定できます;
            例えば,色番号2　（標準カラーマップを使用する場合には青）のヒストグラムをプロットする場合や,
            矩形 [-3,3]x[0,0.5] の内側へのプロットを制限する場合,
            <literal>histplot(n,data, style=2, rect=[-3,0,3,0.5])</literal>
            を使用することができます.
        </para>
        <para>
            周波数ポリゴンは,ヒストグラムの全てのビンの頂部の中点をつなぐことにより描画されるグラフｎ
            線です.
            このため, ポリゴン周波数チャートをプロットするために
            <literal>histplot</literal> を使用できます.
        </para>
        <para>
            オプションの引数 <literal>polygon</literal> は,直線を有するヒストグラムの
            各バーの頂部の中点を接続します.
        </para>
        <para>
            <literal>polygon=%t</literal>の場合,
            周波数ポリゴンチャート付きのヒストグラムが出力されます.
        </para>
        <para>
            デモを参照するには <literal>histplot()</literal>コマンドを入力してください.
        </para>
    </refsection>
    <refsection>
        <title>例</title>
        <simplelist>
            <member>
                例 #1: ガウス乱数標本の種々のヒストグラム
                <programlisting role="example"><![CDATA[
d = rand(1,10000,'normal');  // ガウス乱数標本

clf(); histplot(20, d);
clf(); histplot(20, d, normalization=%f);
clf(); histplot(20, d, leg='rand(1,10000,''normal'')', style=5);
clf(); histplot(20, d, leg='rand(1,10000,''normal'')', style=16, rect=[-3,0,3,0.5]);
]]></programlisting>
                <scilab:image>
                    d=rand(1,10000,'normal');
                    clf();histplot(20,d,leg='rand(1,10000,''normal'')',style=16, rect=[-3,0,3,0.5]);
                </scilab:image>
            </member>
            <member>
                例 #2: 二項分布 (B(6,0.5)) 乱数標本のヒストグラム
                <programlisting role="example"><![CDATA[
d = grand(1000,1,"bin", 6, 0.5);
c = linspace(-0.5,6.5,8);

clf()
subplot(2,1,1)
histplot(c, d, style=2);
xtitle("normalized histogram")

subplot(2,1,2)
histplot(c, d, normalization=%f, style=5);
xtitle("non normalized histogram")
]]></programlisting>
                <scilab:image localized="true">
                    d = grand(1000,1,"bin", 6, 0.5);
                    c = linspace(-0.5,6.5,8);
                    clf()
                    subplot(2,1,1)
                    histplot(c, d, style=2)
                    xtitle("normalized histogram")
                    subplot(2,1,2)
                    histplot(c, d, normalization=%f, style=5)
                    xtitle("non normalized histogram")
                </scilab:image>
            </member>
            <member>
                例 #3: 指数乱数標本のヒストグラム
                <programlisting role="example"><![CDATA[
lambda = 2;
X = grand(100000,1,"exp", 1/lambda);
Xmax = max(X);

clf()
histplot(40, X, style=2);
x = linspace(0,max(Xmax),100)';
plot2d(x,lambda*exp(-lambda*x),strf="000",style=5)
legend(["exponential random sample histogram" "exact density curve"]);
]]></programlisting>
                <scilab:image localized="true">
                    lambda = 2;
                    X = grand(100000,1,"exp", 1/lambda);
                    Xmax = max(X);
                    clf()
                    histplot(40, X, style=2)
                    x = linspace(0,max(Xmax),100)';
                    plot2d(x,lambda*exp(-lambda*x),strf="000",style=5)
                    legend(["exponential random sample histogram" "exact density curve"]);
                </scilab:image>
            </member>
            <member>
                例 #4: 周波数ポリゴンチャートおよびガウス乱数標本のヒストグラム
                <programlisting role="example"><![CDATA[
n = 10;
data = rand(1,1000,"normal");

clf(); histplot(n, data, style=12, polygon=%t);
legend(["normalized histogram" "frequency polygon chart"],"lower_caption");
]]></programlisting>
                <scilab:image localized="true">
                    n=10;
                    data=rand(1,1000,"normal");
                    clf(); histplot(n,data,style=12,polygon=%t);
                    legend(["normalized histogram" "frequency polygon chart"],"lower_caption");
                </scilab:image>
            </member>
        </simplelist>
    </refsection>
    <refsection role="see also">
        <title>参照</title>
        <simplelist type="inline">
            <member>
                <link linkend="histc">histc</link>
            </member>
            <member>
                <link linkend="bar3d">bar3d</link>
            </member>
            <member>
                <link linkend="bar">bar</link>
            </member>
            <member>
                <link linkend="plot2d">plot2d</link>
            </member>
            <member>
                <link linkend="dsearch">dsearch</link>
            </member>
        </simplelist>
    </refsection>
    <refsection role="history">
        <title>履歴</title>
        <revhistory>
            <revision>
                <revnumber>5.5.0</revnumber>
                <revdescription>
                    <literal>polygon</literal> option and <literal>cf</literal> output added.
                </revdescription>
            </revision>
        </revhistory>
    </refsection>
</refentry>