# GlobalProperty

plotまたはsurfコマンドでオブジェクト(曲線,曲面...)の外観をカスタマイズ.

## 説明

The GlobalProperty は, plot または surfコマンドの内部で 使用可能なオプション引数です. これにより,新規にプロットされる全ての線(または平面)のグローバルなカスタマイズが 可能となります. 値は, {PropertyName, PropertyValue}の対で指定する必要があります. plot または surf をコールする際に一度に複数の対を設定できます.

PropertyName は設定するプロパティを定義する文字列とする必要があります. PropertyValue は,使用するプロパティの型により 実数, 整数または文字列 (スカラーまたは行列)とすることができます. 例えば,菱形のマーカ(マーカ)が付いた赤(色)の長い破線+ドット(線の形式) を指定する場合,このシーケンスは以下のようになります : 'Colo','red','LineSt','-.','Marker','diam'.

見てわかるように,各プロパティ名および値の綴り全体を指定する 必要はなく,順序も任意ですが,一義的である必要があります. 更に,文字列の指定は大文字と小文字を区別しません. GlobalProperty は過去に記述された全ての LineSpacに 優先します.

以下に全ての(plotまたは surfにより) 指定可能な`PropertyName`の一覧と 関連する`PropertyValue`を示します. 指定されない場合,これらのプロパティは (それぞれ plot または surfにより作成された) `Polyline` および `Fac3d` オブジェクトの両方で利用可能で,前記のように 新規に作成されるオブジェクト(線または曲面)に適用されます.

時々,1つのプロパティに2つのPropertyNameが対応する場合があります : 最初の1つはデフォルトMatlabの名前に等価なもので, 2番目のものはScilabにより使用されるデフォルトの名前です. (線の場合 `Color` またはs `Foreground` ,下記参照).

CData または ColorData:

  `Z`行列で定義される各点における色を指定する実数行列. このプロパティはオブジェクトの`data.color`プロパティに リンクされています( surface_properties参照). このプロパティは曲面(surface)でのみ使用可能であることに注意してください.

CDataMapping または ColorDataMapping:

  `'scaled'` または `'direct'`を値とする文字列. `data.color` が設定された場合, color data の各インデックスは各頂点について単一の値を指定します.

  `cdata_mapping` はこれらのインデックスが カレントのカラーマップに線形にマップするためにスケーリングされる (`'scaled'` モード)か,もしくは, このカラーマップを直接指す(`'direct`' モード) かのどちらとなるかを定義します. このプロパティは,`color_flag`が `2`,`3` または `4`の時に有用です. このプロパティは,`Fac3d`エンティティのみに存在することに注意してください. また,`plot3d` では `'direct'`モードがデフォルトで, `surf` では`'scaled'` モードがデフォルトであることに も注意してください.

Clipping:

  文字列 `"on"` または `"off"` は, クリッピングモード (デフォルト: `"on"`)を定義します. これは, `clip_state`プロパティと等価です. このフィールドは,`visible`プロパティを有します (polyline_properties参照). このプロパティは surface エンティティではまだ利用できないことに注意してください.

Color または Foreground:

  既知の色を定義する文字列(color_list参照) または,色番号を定義する `1`x`3` (または`3`x`1`) RGB ベクトル. 色番号は,それぞれ赤,緑,青の彩度(0から1)に対応する `R`, `G`, `B` の組で指定されます. このプロパティはオブジェクトの`foreground`プロパティに リンクされています (polyline_properties参照). `警告``:` Color は surface オブジェクトでは使用できません.surfaceオブジェクトにおいても `Foreground` プロパティは存在しますが, Matlab `EdgeColor`プロパティにリンクされています( surface_properties参照).

EdgeColor または Foreground:

  既知の色を定義する文字列 (color_list参照) または, 色番号を定義するベクトル. 色番号は,それぞれ赤,緑,青の彩度(0から1)に対応する `R`, `G`, `B` の組で指定されます. このプロパティはオブジェクトの`foreground`プロパティに リンクされています (surface_properties参照). `警告``:` polylineオブジェクトの場合, `Foreground` プロパティは存在しますが,意味が異なります(上記参照). また,`EdgeColor`は存在しません.

FaceColor:

  文字列で,値は `'none'`, `'flat'` または `'interp'`. この値は,小平面の色をレンダリングする方法を指定します. `'none'` が選択された場合, 曲面のメッシュが描画されます. `'flat'` (デフォルトモード) が設定された場合, `Fac3d` `color.data` の値が 小平面の最初の頂点の色により小平面毎に1つの色を定義します. 値が`'interp'`の場合, 小平面の各頂点における色を定義する`color.data`を用いて 曲面上で補間シェーディングが実行されます.

LineStyle:

  このプロパティは線の形式を定義する文字列です. このプロパティは tje オブジェクトの`line_style`プロパティ にリンクしています (polyline_properties または surface_properties参照).

  `指定子` | `線の形式`
  `-` | 実線 (デフォルト)
  `--` | 破線
  `:` | 点線
  `-.` | 一点鎖線
  `none` | 線を描画しない

Marker または MarkStyle:

  マーカの型を定義する文字列. 線の形式を指定せずにマーカを 指定した場合,線(デフォルトでは実線モードが有効)とマーカが描画されます. このプロパティはオブジェクトの`mark_style` および`mark_mode`プロパティにリンクされています. ( polyline_propertiesまたは surface_properties参照).

  `指定子` | `マーカ型`
  `+` | +記号
  `o` | 円
  `*` | アスタリスク
  `.` | 点
  `x` | 十字
  `'square'` または `'s'` | 正方形
  `'diamond'` または `'d'` | 菱形
  `^` | 上向き三角形
  `v` | 下向き三角形
  `>` | 右向き三角形
  `<` | 左向き三角形
  `'pentagram'` | 星型五角形 (ペンタグラム)
  `'none'` | マーカなし (デフォルト)

MarkerEdgeColor または MarkForeground:

  既知の色を定義する文字列(color_list参照)または 色番号を定義する`1`x`3` (または `3`x`1`) RGBベクトル. 色番号は,それぞれ赤,緑,青の彩度(0から1)に対応する `R`, `G`, `B` の組で指定されます. このプロパティはオブジェクトの`mark_foreground`プロパティに リンクされています (polyline_propertiesまたは surface_properties参照).

MarkerFaceColor または MarkBackground:

  既知の色を定義する文字列(color_list参照)または `1`x`3` (または `3`x`1`) RGBベクトル. 色番号は,それぞれ赤,緑,青の彩度(0から1)に対応する `R`, `G`, `B` の組で指定されます. このプロパティはオブジェクトの`mark_background`プロパティに リンクされています (polyline_propertiesまたは surface_properties参照).

MarkerSize または MarkSize:

  `point` ユニットのマーカの大きさを定義するスカラー値. このプロパティはオブジェクトの`mark_size`プロパティに リンクされ,`mark_size_unit`の値は`"point"` に設定されています ( polyline_properties または surface_properties参照).

Visible:

  文字列で, 可視モード `"on"` または `"off"` を定義します(デフォルト: `"on"`). このプロパティはオブジェクトの `visible`プロパティに リンクされています ( polyline_properties または surface_properties参照).

X data:

  実数のベクトルまたは行列で,プロット済みの全ての線または曲面に関する 指定データを(再)定義します. 次元について, この新しいデータは,過去に指定された`X`データと 完全に一致する必要があることに注意してください: これはこれらのデータ行列を全て同じ次元とする必要があることを意味します. このプロパティはオブジェクトの`data.x`プロパティに リンクされています ( polyline_properties または surface_properties参照).

Y data:

  実数のベクトルまたは行列で,プロット済みの全ての線または曲面に関する 指定データを(再)定義します. 次元について, この新しいデータは,前に指定された`Y`データと 完全に一致する必要があることに注意してください: これはこれらのデータ行列を全て同じ次元とする必要があることを意味します. このプロパティはオブジェクトの`data.y`プロパティに リンクされています ( polyline_properties または surface_properties参照).

Z data:

  `plot`と共に使用した場合は実数のベクトルまたは行列 で,全てのプロット済みの線に`Z`を追加します.

  `surf`と共に使用した場合は実数行列で, 全ての平面に関する指定データを再定義します. 次元について, この新しいデータは前に指定された`X` および`Y` データと完全に位置する必要があります. このプロパティはオブジェクトの`data.z`プロパティに リンクされています (polyline_properties または surface_properties参照).

## 例

    // --------------------
    // With the plot command :
    // --------------------
    x=1:10; // Init.
    plot(x,sin(x),'colo','red','linest','-.','marker','>','markeredg','cyan','markerFace','yellow','markersize',5)
    clf();

    // combinations' order in {PropertyName,PropertyValue} does not matter
    plot(x,sin(x),'marker','p','markerfac','cyan','markersiz',10)
    clf();

    // combination of LineSpec and GlobalProperty shows the GlobalProperty predominance
    plot(x,x.*x,'*cya--','color','gr','linestyle','-','marker','sq','markersize',6,'markforegroun','red','markbackgro',[0.2 0.5 0.6])
    clf();

    //multiple plots with different LineSpecs and finally some global GlobalProperty
    clf();
    t=0:%pi/20:2*%pi;
    plot(t,sin(t),'ro-.',t,cos(t),'cya+',t,abs(sin(t)),'--mo','markstyl','diam')

    // --------------------
    // With the plot2d command :
    // --------------------
    function draw_marks(title)
      a=gca();
      a.title.text=title;
      a.mark_size=8;
      a.data_bounds=[-1.5 1.5 -1.5 1.5];

      theta=(1/15)*(2*%pi)*[0:15];
      plot2d(cos(theta),sin(theta));

      for i=0:14 do
        theta=(i/15)*(2*%pi);
        plot2d(cos(theta),sin(theta),style=-i);
      end
    endfunction

    clf();
    subplot(2,2,1)
    draw_marks("black foreground / white background")

    subplot(2,2,2)
    a=gca();
    a.mark_foreground=-1;
    a.mark_background=4;
    draw_marks("black foreground / cyan background")

    subplot(2,2,3)
    a=gca();
    a.mark_background=0;
    draw_marks("black foreground / invisible background")

    subplot(2,2,4)
    a=gca();
    a.mark_foreground=0;
    a.mark_background=4;
    draw_marks("invisible foreground / cyan background")

    // --------------------
    // With the surf command :
    // --------------------

    Z= [   0.0001    0.0013    0.0053   -0.0299   -0.1809   -0.2465   -0.1100   -0.0168   -0.0008   -0.0000
        0.0005    0.0089    0.0259   -0.3673   -1.8670   -2.4736   -1.0866   -0.1602   -0.0067    0.0000
        0.0004    0.0214    0.1739   -0.3147   -4.0919   -6.4101   -2.7589   -0.2779    0.0131    0.0020
       -0.0088   -0.0871    0.0364    1.8559    1.4995   -2.2171   -0.2729    0.8368    0.2016    0.0130
       -0.0308   -0.4313   -1.7334   -0.1148    3.0731    0.4444    2.6145    2.4410    0.4877    0.0301
       -0.0336   -0.4990   -2.3552   -2.1722    0.8856   -0.0531    2.6416    2.4064    0.4771    0.0294
       -0.0137   -0.1967   -0.8083    0.2289    3.3983    3.1955    2.4338    1.2129    0.2108    0.0125
       -0.0014   -0.0017    0.3189    2.7414    7.1622    7.1361    3.1242    0.6633    0.0674    0.0030
        0.0002    0.0104    0.1733    1.0852    2.6741    2.6725    1.1119    0.1973    0.0152    0.0005
        0.0000    0.0012    0.0183    0.1099    0.2684    0.2683    0.1107    0.0190    0.0014    0.0000];

    clf();
    f=gcf();
    f.figure_size = [610,724];
    subplot(211)
    surf(Z,'facecol','interp','ydat',101:110,'edgecol','mage')
    subplot(212)
    surf(Z,'edgeco','b','marker','d','markersiz',9,'markerfac','k','xdata',-50:-41)

## 参照

- LineSpec
- plot
- surf
- clf
- polyline_properties
- surface_properties