チャート

ReoGridは、ワークシート上にフローティングオブジェクトとして表示できるさまざまなチャートタイプをサポートしています。チャートはデータソースが変更されると自動的に更新され、Excelファイルに保存/読み込みされます。

名前空間

using unvell.ReoGrid.Chart;
using unvell.ReoGrid.Drawing;

利用可能なチャートタイプ

クラスサンプル説明
ColumnChart238縦棒グラフ
BarChart274横棒グラフ
LineChart235折れ線グラフ
AreaChart341面グラフ
Pie2DChart2392D円グラフ
DoughnutChart430ドーナツグラフ

チャートの作成

ステップ1: データの準備

var sheet = grid.CurrentWorksheet;

sheet["A2"] = new object[,] {
    { null, 2008, 2009, 2010, 2011, 2012 },
    { "City 1", 3, 2, 4, 2, 6 },
    { "City 2", 7, 5, 3, 6, 4 },
    { "City 3", 13, 10, 9, 10, 9 },
};

ステップ2: 範囲の定義

var dataRange = sheet.Ranges["B3:F5"];           // The numeric data
var serialNamesRange = sheet.Ranges["A3:A5"];    // Series names (row headers)
var categoryNamesRange = sheet.Ranges["B2:F2"];  // Category names (column headers)

ステップ3: チャートの作成

var chart = new ColumnChart
{
    Location = new Graphics.Point(220, 160),
    Size = new Graphics.Size(400, 260),
    Title = "Column Chart Sample",
    DataSource = new WorksheetChartDataSource(sheet, serialNamesRange, dataRange)
    {
        CategoryNameRange = categoryNamesRange,
    },
};

ステップ4: ワークシートに追加

sheet.FloatingObjects.Add(chart);

チャートのプロパティ

すべてのチャートタイプはChart基底クラスを継承しています。

プロパティデフォルト説明
Titlestring"Chart"チャートのタイトルテキスト
DataSourceWorksheetChartDataSourcenullチャートのデータソース
ShowLegendbooltrue凡例を表示するかどうか
PrimaryLegendChartLegendチャートの凡例インスタンス
DataSerialStylesDataSerialStyleCollection各データ系列のスタイル
LocationGraphics.Pointワークシート上の左上の位置
SizeGraphics.Size幅と高さ
BoundsGraphics.Rectangle位置とサイズの組み合わせ
Visiblebooltrueチャートを表示するかどうか

イベント

イベント説明
ChartDataChangedチャートデータが更新されたときに発生します
DataSourceChangedデータソースが変更されたときに発生します

データソース

WorksheetChartDataSource

ワークシートデータをチャートに接続します。

// Constructor with ranges
var dataSource = new WorksheetChartDataSource(sheet, serialNamesRange, dataRange)
{
    CategoryNameRange = categoryNamesRange,
};

// Constructor with string addresses
var dataSource = new WorksheetChartDataSource(sheet, "A3:A5", "B3:F5")
{
    CategoryNameRange = sheet.Ranges["B2:F2"],
};

コンストラクタ

コンストラクタ説明
WorksheetChartDataSource(worksheet)空のデータソース
WorksheetChartDataSource(worksheet, serialNamesRange, dataRange)系列名とデータ範囲を指定
WorksheetChartDataSource(worksheet, serialNamesRange, dataRange, rowOrColumn)系列が行か列かを指定

プロパティ

プロパティ説明
WorksheetWorksheetデータを含むワークシート
CategoryNameRangeRangePositionカテゴリラベルを含む範囲
SerialCountintデータ系列の数(読み取り専用)
CategoryCountintカテゴリの数(読み取り専用)
SerialsWorksheetChartDataSerialCollectionデータ系列のコレクション

メソッド

メソッド説明
GetCategoryName(int index)インデックスでカテゴリラベルを取得
AddSerial(worksheet, labelAddress, dataRange)データ系列を手動で追加
GetSerial(int index)特定のデータ系列を取得

イベント

イベント説明
DataChangedソースデータが変更されたときに発生します

WorksheetChartDataSerial

チャート内の1つのデータ系列を表します。

プロパティ説明
WorksheetWorksheetデータを含むワークシート
DataRangeRangePosition系列データを含む範囲
LabelAddressCellPosition系列ラベルセルのアドレス
Labelstring系列名(読み取り専用)
Countintデータポイントの数(読み取り専用)
this[int index]double?インデックスでデータ値を取得

データ系列のスタイル

各データ系列の外観をカスタマイズします。

// Access styles by index
var style = chart.DataSerialStyles[0];
プロパティデフォルト説明
FillColorIColor(自動)棒、面、円スライスの塗りつぶし色
LineColorSolidColor(自動)折れ線グラフの線の色
LineWidthRGFloat2f線の幅
LineStyleLineStylesSolid線のスタイル(Solid、Dash、Dotなど)
StartCapLineCapStylesNone始点のキャップスタイル
EndCapLineCapStylesNone終点のキャップスタイル

例: 半透明の面グラフ

foreach (var style in chart.DataSerialStyles)
{
    style.FillColor = new Graphics.SolidColor(100, style.FillColor.ToSolidColor());
}

凡例

チャートの凡例を制御します。

// Hide the legend
chart.ShowLegend = false;

// Access legend properties
var legend = chart.PrimaryLegend;

LegendPosition列挙型

説明
Right右側に凡例を表示(デフォルト)
Bottom下部に凡例を表示
Left左側に凡例を表示
Top上部に凡例を表示

軸の設定(軸チャートのみ)

縦棒、横棒、折れ線、面グラフはAxisChartを継承しており、軸の設定をサポートしています。

プロパティ説明
PrimaryAxisInfoAxisDataInfo主軸の設定
SecondaryAxisInfoAxisDataInfo第2軸の設定
ShowHorizontalGuideLinesbool水平ガイドラインを表示(デフォルト: true
ShowVerticalGuideLinesbool垂直ガイドラインを表示(デフォルト: false

AxisDataInfoプロパティ

プロパティ説明
Levelsint軸のレベル数
Scalerint軸のスケーラー
Minimumdouble軸の最小値
Maximumdouble軸の最大値
AutoMinimumbool最小値を自動決定
AutoMaximumbool最大値を自動決定
LargeStridedouble大きいストライド値(主グリッド線)
SmallStridedouble小さいストライド値(副グリッド線)

範囲のハイライト

チャートのデータソースを視覚的に示すために、ワークシート上のデータ範囲をハイライトします。

sheet.AddHighlightRange(dataRange);
sheet.AddHighlightRange(serialNamesRange);
sheet.AddHighlightRange(categoryNamesRange);

チャートタイプの詳細

チャートタイプドキュメント
縦棒グラフ縦棒グラフ
横棒グラフ横棒グラフ
折れ線グラフ折れ線グラフ
面グラフ面グラフ
2D円グラフ2D円グラフ
ドーナツグラフドーナツグラフ

クラス階層

FloatingObject
  └─ DrawingObject
      └─ DrawingComponent
          └─ Chart (base)
              ├─ AxisChart
              │   ├─ ColumnChart
              │   │   └─ BarChart
              │   ├─ LineChart
              │   └─ AreaChart
              └─ PieChart
                  ├─ Pie2DChart
                  └─ DoughnutChart

関連トピック


ページの内容は役に立ちましたか?