axis-label (非ローカル オプションの定義)
public axis-label:any ={proc {axis:ChartAxis}:#Shape {return {axis.generate-axis-label}} }
パッケージ: CURL.GUI.CHARTS

LayeredChart の 1 つ以上の ChartAxis オブジェクトに割り当てられるラベルを定義する値。

説明

このオプションの有効な値は次のとおりです。
  • StringInterface: 文字列は、配置と回転が適切に定義された TextShape に変換されます。
  • RecordField: RecordField.name は、StringInterface として提供されているように表示されます。
  • Shape: Shape はそのまま表示されます。
  • Graphic (または Graphic にキャストできるもの):Graphic はそのまま表示されます。
  • AxisLabelProc: このプロシージャは、ラベルの生成が必要になると必ず呼び出されます。Shape を返すことを想定されています。ChartAxis.generate-axis-label を呼び出して、既定ラベルを取得し、変更することは役立ちます。
  • null: 軸ラベルは表示されません。

説明

既定値は AxisLabelProc で、ChartAxis.generate-axis-label を呼び出します。
このオプションは、一般的に ChartAxis そのものについてではなく、LayeredChart のメンバについて設定されます。それは、軸が再生成される場合にも、オプション設定が残るようにするためです。この例については、次を参照してください。軸の生成および関連概念については、LayeredChart も参照してください。

注意事項

ラベルが生成されると、そのラベルの変換 (位置、回転、およびスケール) が ChartLabelGroup によって設定されます。独自の Shape または Graphic を生成する場合は、そのオブジェクトの原点に注意する必要があります。原点は軸自体に近いの軸の中心に置かれ、オブジェクトの回転は水平軸の場合は 0 度、垂直軸の場合は -90 度になります。こうした理由で、生成した形状が意図した位置になるように (たとえば、軸および目盛りが重ならないように)、その形状を注意して位置付ける必要があります。
halign および valign をサポートするオブジェクト (TextShape など) の場合は、halign を常に "center" に設定する一方、valign を、左と上の軸の場合は "bottom" に、他の 2 つの位置の場合は "top" に設定することをお勧めします。(ChartTick.axis-position を参照してください。)同様の推奨は、特定の Graphichorigin および vorigin にも適用されることに注意してください。
Shape の場合は、前の段落に示したガイドラインに従ってください。たとえば、下の軸に対して RectangleShape を生成する場合は、四角形の上部を (0m, 0m) 中心に位置付けるのが一般的です。

次の例では、axis-labelLayeredChart レベルで設定します。これはすべての軸に影響します。また、異なる axis-labelLayeredChart.left-axis-parent に指定して、左軸だけが変更されるようにします。

例: 次の使用: axis-label
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
    location = "../docstring-support/gui/charts-doc.scurl"
}

{LayeredChart
    width = 15cm,
    height = 7cm,
    || Provide a factory for all axes:
    axis-label =
        {proc {axis:ChartAxis}:#Shape
            {return
                {if-non-null shape = {axis.generate-axis-label} then
                    set shape.color = FillPattern.navy
                    {shape.set-scale 1.5, 1.5}
                    || Use a ShapeGroup so that the shape's
                    || scale is not overridden.
                    {ShapeGroup shape}
                 else
                    null
                }
            }
        },
    left-axis-parent =
        {ShapeGroup
            || Override for just the left axis:
            axis-label = "Age & Points on one axis!"
        },
    {LineLayer
        sample-records,
        "Age",
        "Points",
        x-axis-data = {ChartDataSeries sample-records, "Name"}
    }
}