PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > よくある質問 > セクションレポート > グラフ(チャート) |
グラフ軸の目盛間隔や最大値/最小値を設定する
グラフ軸(Axis)のSmartLabels プロパティがTrue(デフォルト)に設定されている場合、軸の目盛間隔、最大値/最小値は、コントロールが自動的に設定します。任意の値を設定する場合は、SmartLabelsプロパティをFalseに設定した上で、軸の各プロパティを変更する必要があります。
SmartLabelsプロパティは、グラフデザイナから変更するか、コードから設定します。下記のコードは、SmartLabelsプロパティをFalseにし、軸の書式を設定する一例です。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
' スマートラベルを無効にします。 Me.ChartControl1.ChartAreas(0).Axes("AxisY").SmartLabels = False ' 軸の最大値・最小値、主目盛の間隔を設定します。 Me.ChartControl.ChartAreas(0).Axes("AxisY").Max = 300 Me.ChartControl.ChartAreas(0).Axes("AxisY").Min = 0 Me.ChartControl.ChartAreas(0).Axes("AxisY").MajorTick.Step = 500 |
C#
C#コード |
コードのコピー
|
---|---|
// スマートラベルを無効にします。 this.chartControl1.ChartAreas[0].Axes["AxisY"].SmartLabels = false; // 軸の最大値・最小値、主目盛の間隔を設定します。 this.chartControl1.ChartAreas[0].Axes["AxisY"].Max = 3000; this.chartControl1.ChartAreas[0].Axes["AxisY"].Min = 0; this.chartControl1.ChartAreas[0].Axes["AxisY"].MajorTick.Step = 500; |
X軸・Y軸をグラフの中央に寄せる
X軸の位置を移動する
デフォルトの設定では、グラフのY軸の表す範囲はデータ点のY値から決定されます。 Y軸の最小値はデータの最小値より小さい値となります。
データ点にマイナスの値が含まれていた場合、 0を基準にし、X軸をグラフの中央に移動させたいという場合があります。これはX軸(AxisX)のPositionプロパティを0に設定することで実現可能です。
グラフデザイナから設定するY軸の位置を移動する
X軸とY軸を入れ換える
Chartコントロールのプロパティから、ChartAreaのSwapAxesDirection プロパティをTrueに設定することで、X軸とY軸を入れ換えることが可能です。
これは、棒グラフや、2D円グラフなどで有効です。ただし、3D円グラフでこのプロパティをTrueにした場合、マーカーの位置が不正になる問題が確認されています。3D円グラフの場合は、以下の「項目の表示順序を逆順にしたい」の「クエリによって逆順にする」方法を検討してください。
項目の表示順序を逆順にしたい
クエリによって逆順にする
グラフデータソースのクエリによって逆順に並べ変えする方法があります。
たとえば、データの並び順を規定する項目(整数値)をフィールド"ID" とした場合、以下のようなクエリ文字列(SQL)になります。
Select * from GraphDataTable order by ID desc
円グラフを時計回りにする
グラフのカスタムプロパティのClockwiseを「True」に設定すると、円グラフの回転方向が時計回りになります。
コードから設定する方法
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
' 円グラフの回転方向を時計回りに設定します。 Me.ChartControl1.Series(0).Properties("Clockwise") = True |
C#
C#コード |
コードのコピー
|
---|---|
// 円グラフの回転方向を時計回りに設定します。
this.chartControl1.Series[0].Properties["Clockwise"] = true;
|
系列・データ点の色を変更する
チャートコントロールは、系列内のデータの色を自動的に設定できるいくつかの定義済みのカラーパレットを備えています。
カラーパレットを使用した場合の系列の色の変化は、ColorPalette 列挙体の値によって定まっております。これは8色のセットであり、9項目以降の色は繰り返しになる仕様となっております。各系列の色を任意の色に設定するには、BackdropItemオブジェクトに色を設定し、各Seriesに追加する方法が考えられます。
コード上で設定する場合には、以下のような処理を、チャートコントロールが配置されているセクションの BeforePrintイベントに実装します。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
For i As Integer = 0 To Me.ChartControl1.Series.Count - 1 ' 背景を設定するオブジェクトです。 Dim bItem As New GrapeCity.ActiveReports.Chart.BackdropItem ' 色を指定します。 |
C#
C#コード |
コードのコピー
|
---|---|
int i = 0; foreach(GrapeCity.ActiveReports.Chart.Series p in this.chartControl1.Series) { i++; // 背景を設定するオブジェクトです。 GrapeCity.ActiveReports.Chart.BackdropItem bItem = new GrapeCity.ActiveReports.Chart.BackdropItem(); // 色を指定します。 |
なお、デザイン画面から1系列ずつ手作業で設定する場合には、以下のような手順になります。
また、円グラフなどの場合、色を設定した BackdropItemオブジェクトを Series ではなく、DataPoint に対して設定します。以下のコードをご参照ください。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
For i As Integer = 0 To _ Me.ChartControl1.Series(0).Points.Count - 1 ' 背景を設定するオブジェクトです。 Dim bItem As New GrapeCity.ActiveReports.Chart.BackdropItem ' 色を指定します。 |
C#
C#コード |
コードのコピー
|
---|---|
for (int i = 0; i <= this.chartControl1.Series[0].Points.Count - 1; i++) { // 背景を設定するオブジェクトです。 GrapeCity.ActiveReports.Chart.BackdropItem bItem = new GrapeCity.ActiveReports.Chart.BackdropItem(); // 色を指定します。 // グラデーションをつける処理の例です。 bItem.Color = System.Drawing.Color.FromArgb(0, 255 - ((i * 32) % 256), 255 - ((i * 32) % 256)); // DataPointに背景を設定します。 this.chartControl1.Series[0].Points[i].Backdrop = bItem; |