2011/03/29

チャート: X軸の設定 (Chart X axis)

今回はX軸の設定について、主要な要件の実装方法をまとめます。

BI Publisher(およびOracle Reports等)では、いわゆるX軸は O軸(Ordinal axis: O1Axis)と表します。
X1Axisはバブルチャート、散布図および鶏頭図を設定する際に使用します。

O1Axisに定義されている項目は多くありません。
  • lineWidth
  • lineColor
  • visible (true | false)

また、O軸のラベルの設定に関する定義として、O1TickLabelが用意されています。以下の項目が定義されています。
  • tickLabelSkipMode (TLS_NOSKIP | TLS_AUTOMATIC | TLS_MANUAL)
  • tickLabelSkipCount
  • tickLabelSkipFirst
  • textFittingAutomatic (true|false)
  • fontSizeAbsolute (true | false)
  • horizontalAlignment (LEFT | CENTER | RIGHT)
  • textRotation (TR_HORIZ | TR_HORIZ_ROTATE_90 | TR_HORIZ_ROTATE_270)
  • tickLabelStaggered (true|false)
  • tickLabelWrapped (true|false)
  • wordWrapEnabled (true|false)
  • automaticRotation (AR_NO_ROTATE | AR_HORIZ_ROTATE_90 | AR_HORIZ_ROTATE_270)
これらの他、ViewFormatも使用可能です。ViewFormatに関してはY軸と同等の設定が可能ですので、「チャート: Y軸の書式設定」を参照して下さい。

主な項目について、以下にサンプルで説明します。


【ラベルの互い違い表示の制御】
標準構成の自動レイアウトでは、O軸(X軸)のラベルが以下のように互い違いに表示されることがあります。



この表示を明示的に停止するには tickLabelStaggered を false に設定します。また、tickLabel の設定はチャート全体の autoLayout 属性の影響下にあるため、併せて Graph の autoLayout を"AL_NEVER"に設定します。設定例は以下の通りです。
<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelStaggered="false" />




【O軸(X軸)のラベルの間隔】
前述の設定だけでは、ラベルが重なって表示されます。ラベルの間隔は以下のように調整できます。tickLabelSkipFirst で表示の開始位置を指定し、tickLabelSkipCount でラベルを表示する要素の間隔を指定します。
<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelSkipMode="TLS_MANUAL" tickLabelSkipCount="2" tickLabelSkipFirst="0" />




【O軸(X軸)のラベルの向き】
ラベルの向きを縦向きに変える例は以下の通りです。なお、斜め45度などは定義されていません。
<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelStaggered="false" textRotation="TR_HORIZ_ROTATE_270" />





[ Summary ]
* In chart XML, X axis is written as "O Axis (Ordinary Axis)".


AutoLayout often put O axis labels staggered. To prevent it, set tickLabelStaggered "false". By default, tickLabelStaggered is suppressed by autoLayout attribute of Graph. You need to set these attributes as follow:

<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelStaggered="false" />


To configure label step, set tickLabelSkipCount and tickLabelSkipFirst.

<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelSkipMode="TLS_MANUAL" tickLabelSkipCount="2" tickLabelSkipFirst="0" />


To rotate O axis labels, set textRotation "TR_HORIZ_ROTATE_90" or "TR_HORIZ_ROTATE_270".

<Graph seriesEffect="SE_AUTO_GRADIENT" autoLayout="AL_NEVER">
<O1TickLabel tickLabelStaggered="false" textRotation="TR_HORIZ_ROTATE_270" />


O axis supports ViewFormat, same as Y axis. Refer Format chart Y axis labels for more detail.

0 件のコメント:

コメントを投稿