FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows...

280
FlexChart for WinForms 2019.11.28 更新 グレープシティ株式会社 グレープシティ株式会社

Transcript of FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows...

Page 1: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart for WinForms2019.11.28 更新

グレープシティ株式会社グレープシティ株式会社

Page 2: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

目次

概要 7

FlexChart 8

主な機能 8-9

機能比較 9

FlexChart の比較 9-16

WinForms チャートの比較 16-25

クイックスタート 25

手順 1:フォームへの FlexChart の追加 25

手順 2:データソースへの FlexChart の連結 25-28

FlexChart の理解 28

FlexChart の基本 28-29

ヘッダーとフッター 29-30

凡例 30

軸 30-32

プロット領域 32-33

系列 33-34

FlexChart タイプ 34

面 34-36

横棒 36-39

バブル 39-42

箱ひげ図 42-49

縦棒 49-51

誤差範囲 51-54

株価(財務) 54

ローソク足 54-56

HighLowOpenClose 56-58

フローティングバー 58-59

ファンネル 59-62

ガントチャート 62-63

ヒートマップ 63-68

ヒストグラム 68-71

  FlexChart for WinForms

1 Copyright © GrapeCity, Inc. All rights reserved.         

Page 3: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

折れ線 71-73

折れ線シンボル 73-75

複合 75-78

パレート図 78-79

RangedHistogram 79-83

散布図 83-85

スプライン 86-88

スプライン面 88-91

スプラインシンボル 91-94

階段グラフ 94-95

ウォータフォール 95-98

FlexChart の操作 98

データ 98-99

データの提供 99

配列からのデータのロード 99-101

設計時またはプログラムによるデータの手動入力 101-102

データソースを使用したデータの連結 102

FlexChart へのデータの連結 102-104

データソースへの FlexChart の直接連結 104-106

データのプロット 106-107

系列のカスタマイズ 107

系列の表示または非表示 107-110

Null 値の補間 110

外観 110

色 110-111

対話式の色の選択 111

パレットの設定 111-116

RGB 色の指定 116-117

色相/彩度/輝度の指定 117

透明色の使用 117

フォント 117-118

系列のシンボルスタイル 118-119

テーマ 119

FlexChart for WinForms  

2 Copyright © GrapeCity, Inc. All rights reserved.         

Page 4: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

エンドユーザー操作 119

ツールチップ 119-120

デフォルトツールチップ 120

ツールチップコンテンツのカスタマイズ 120-121

ツールチップコンテンツの書式設定 121-122

共有ツールチップ 122-123

軸スクロールバー 123-127

範囲セレクタ 127-132

ラインマーカー 132-136

ヒットテスト 136-139

アニメーション 139-141

FlexChartデザイナー 141-142

設計時サポート 142

コレクションエディタ 142

系列コレクションエディタ 142-143

FlexChart の要素 143

FlexChart の軸 143-144

軸の位置 144-145

軸のスタイル設定 145-146

軸のタイトル 146-147

軸の目盛りマーク 147-148

軸のグリッド線 148-149

軸の範囲 149-150

軸のスケーリング 150

軸の反転 150-151

軸の連結 151-152

複数の軸 152-154

軸の単位 154-156

FlexChart の軸ラベル 156-157

軸ラベルの書式 157

軸ラベルの回転 157

軸ラベルの表示/非表示 157-158

軸ラベルの重なり 158-159

  FlexChart for WinForms

3 Copyright © GrapeCity, Inc. All rights reserved.         

Page 5: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸のグループ化 159-160

カテゴリ別の軸グループ化 160-162

数値の軸グループ化 162-164

DateTimeの軸グループ化 164-167

FlexChart の注釈 167-168

注釈の追加 168-169

注釈の配置 169-171

注釈のカスタマイズ 171-172

注釈のタイプ 172-173

図形注釈 173-174

テキスト注釈 174-176

画像注釈 176-178

吹き出しの作成 178-184

FlexChart の凡例 184-185

凡例の位置 185-186

凡例のスタイル 186

凡例の切り替え 186-187

凡例テキストの折り返し 187-189

凡例のグループ化 189-192

カスタムの凡例アイコン 192-195

FlexChart の系列 195-196

系列の作成と追加 196-197

系列へのデータの追加 197-200

各種データの強調 200-201

系列のカスタマイズ 201-204

積層グループ 204-206

FlexChart のデータラベル 206

データラベルの追加と配置 206-208

データラベルの書式設定 208-210

重なったデータラベルの管理 210-213

複数のプロット領域 213-215

近似曲線 215-219

FlexChart for WinForms  

4 Copyright © GrapeCity, Inc. All rights reserved.         

Page 6: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

エクスポート 219

画像へのエクスポート 219-221

FlexPie 222

クイックスタート 222-224

アニメーション 224-226

ドーナツ円グラフ 226

分割円グラフ 226-227

ヘッダーとフッター 227-228

FlexPie の凡例 228

選択 229

FlexPie のデータラベル 229-230

データラベルの追加と配置 230-231

データラベルの書式設定 231-234

重なったデータラベルの管理 234-235

複数の円グラフ 235-236

Sunburst チャート 237

主な機能 237-238

クイックスタート 238-243

凡例とタイトル 243-246

選択 246-247

ドリルダウン 247

SunBurst のデータラベル 247-248

データラベルの追加と配置 248

データラベルの書式設定 248-251

重なったデータラベルの管理 251-252

FlexRadar 253

主要な機能 253-254

クイックスタート 254-256

チャートタイプ 256-257

凡例とタイトル 257-260

TreeMap 261

主な機能 261-262

クイックスタート 262-267

  FlexChart for WinForms

5 Copyright © GrapeCity, Inc. All rights reserved.         

Page 7: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

要素 267-268

レイアウト 268-271

データ連結 271-276

選択 276-278

ドリルダウン 278-279

FlexChart for WinForms  

6 Copyright © GrapeCity, Inc. All rights reserved.         

Page 8: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

概要概要

モダンな外観を持つ高性能な FlexChart および FlexPie for WinForms には、強力で柔軟なデータ連結と、単純かつ簡単に使

用できるチャート構成 API が装備されています。さらに、データ視覚化ニーズに合わせて、基本的なチャートから複合グラフま

でのさまざまなチャートタイプを提供します。

コントロールの詳細については、次のリンクをクリックして、役に立つ総合的な情報にアクセスしてください。

FlexChartFlexPieSunBurstFlexRadarTreeMap

  FlexChart for WinForms

7 Copyright © GrapeCity, Inc. All rights reserved.         

Page 9: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChartFlexChart は Windows 用の強力なデータ視覚化コントロールです。Windows フォームアプリケーションに、機能豊富で見栄

えのするチャートを追加できます。このコントロールを使用して、エンドユーザーはデータを読み手の心に響くように視覚化でき

ます。

FlexChart コントロールは、多数の 2D チャートタイプ、チャート対話式操作のための組み込みツール、およびチャートレンダリ

ングのための多様な書式を提供します。

データを使用した解説であれ複雑なデータの解釈であれ、FlexChart はすべてをシームレスに行うために役立ちます。

以下にリストするセクションで、十分に FlexChart コントロールについて理解し、使用を開始することができます。

主要な機能

機能比較

クイックスタート

FlexChart の理解

FlexChart の操作

主な機能主な機能

FlexChart は、.NET 対応の申し分のないデータ視覚化コンポーネントです。性能、表示、そして全体の品質という点で、このコ

ントロールは他に類を見ません。

凡例の自動生成凡例の自動生成

系列の名前を指定するだけで、凡例が自動的に表示されます。

軸ラベルの自動回転軸ラベルの自動回転

長い軸ラベルを自動的に回転させることで、外観を見やすくレンダリングできます。

Axis GroupingGroup the axis labels while working with any kind of data (categorical, numeric or date time) for betterreadability and analysis.チャートのエクスポートチャートのエクスポート

チャートを SVG、JPG、PNG などのさまざまな形式にエクスポートできます。

Direct X のサポートのサポート

コントロールは Direct X レンダリングエンジンをサポートしています。

柔軟なデータラベル柔軟なデータラベル

Set offset, border, and position for data labels. The control also provides various options to manageoverlapping of data labels such as automatic arrangement, hiding overlapped data labels and, rotation.選択のサポート選択のサポート

チャート内をクリックして、1 つのデータポイントまたはデータ系列全体を選択します。

null の補間の補間

InterpolateNulls プロパティを使用して、折れ線グラフと面グラフで null 値を効果的に処理します。

凡例の折り返し凡例の折り返し

スペースの広さに応じて、凡例項目が複数の行と列で表示されるようにします。

複数のチャートタイプ複数のチャートタイプ

1 つのチャートに必要なだけ系列 チャートタイプ を追加します。各系列に目的のチャートタイプを設定し、複数のチャー

トタイプを 1 つのチャートに統合します。

定義済みパレットとカスタムパレット定義済みパレットとカスタムパレット

多数の定義済み パレット から選択したり、カスタムパレットをチャートに適用します。

強力で柔軟なデータ連結強力で柔軟なデータ連結

必要に応じて、系列レベルまたはチャートレベルでデータソースを指定します。1 つのチャートで複数のデータソースを

組み合わせることもできます。

系列の切り替え系列の切り替え

プロット内や凡例内の系列の表示/非表示を切り替えます。それには、LegendToggle プロパティを使用します。

使いやすさ使いやすさ

オブジェクトモデルが明確なので、FlexChart コントロールは簡単に操作できます。

FlexChart for WinForms  

8 Copyright © GrapeCity, Inc. All rights reserved.         

Page 10: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

積層グラフまたは積層グラフまたは 100% 積層グラフ積層グラフ

1 つのプロパティを設定するだけで、積層または 100% 積層グラフになります。

カテゴリ軸、数値軸、およびデータ軸または時間軸のサポートカテゴリ軸、数値軸、およびデータ軸または時間軸のサポート

int、float、string から DateTime まで、さまざまなデータ型に連結します。

ツールチップのカスタマイズツールチップのカスタマイズ

強力な ツールチップ のカスタマイズ機能を使用します。

機能比較機能比較

本トピックでは、FlexChart for WinForms と他のさまざまなチャートの機能を比較しています。

FlexCharts間の比較

各プラットフォームでのFlexChartの比較 - WinForms、WPFとUWPWinFormsのチャートの比較

FlexChart for WinForms と他社のWinFormチャートの比較

FlexChart の比較の比較

チャートタイプチャートタイプ

チャートタイプチャートタイプ Win WPF UWP

面 ○ ○ ○

積層面 ○ ○ ○

100% 積層面 ○ ○ ○

スプライン面 ○ ○ ○

積層スプライン面 ○ ○ ○

StepArea ○ ○ ○

100% 積層スプライ

ン面

○ ○ ○

横棒 ○ ○ ○

積層横棒 ○ ○ ○

100% 積層横棒 ○ ○ ○

バブル ○ ○ ○

ローソク足 ○ ○ ○

縦棒 ○ ○ ○

CumulativeHistogram

○ ○ ○

CumulativeFrequency Polygon

○ ○ ○

積層縦棒 ○ ○ ○

100% 積層縦棒 ○ ○ ○

ヒストグラム ○ ○ ○

  FlexChart for WinForms

9 Copyright © GrapeCity, Inc. All rights reserved.         

Page 11: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ヒートマップ ○ ○

RangedHistogram ○ ○ ○

パレート図 ○ ○ ○

ガント ○ ○ ○

Gaussian Curve ○ ○ ○

フローティングバー ○ ○ ○

Frequency Polygon ○ ○ ○

株価/Hi-Lo-Open-Close

○ ○ ○

折れ線 ○ ○ ○

積層折れ線 ○ ○ ○

100% 積層折れ線 ○ ○ ○

スプライン ○ ○ ○

積層スプライン ○ ○ ○

100% 積層スプライ

○ ○ ○

折れ線シンボル ○ ○ ○

積層折れ線シンボル ○ ○ ○

100% 積層折れ線シ

ンボル

○ ○ ○

スプラインシンボル ○ ○ ○

積層スプラインシン

ボル

○ ○ ○

100% 積層スプライ

ンシンボル

○ ○ ○

Step ○ ○ ○

StepSymbols ○ ○ ○

円 ○ ○ ○

ドーナツ円 ○ ○ ○

分割円 ○ ○ ○

分割ドーナツ円 ○ ○ ○

点/散布図 ○ ○ ○

Radar ○ ○ ○

Polar ○ ○ ○

Box-and-Whisker ○ ○ ○

ErrorBar ○ ○ ○

Funnel ○ ○ ○

FlexChart for WinForms  

10 Copyright © GrapeCity, Inc. All rights reserved.         

Page 12: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Sunburst ○ ○ ○

TreeMap ○ ○ ○

Waterfall ○ ○ ○

2D ○ ○ ○

平均足 * * *

新値足/新値三本足 * * *

練行足 * * *

カギ足 * * *

カラムボリューム * * *

エクイボリューム * * *

ローソクボリューム * * *

アームズローソクボ

リューム

* * *

* FinancialChart で使用可能

データ連結データ連結

データ連結データ連結 Win WPF UWP

IEnumerable を実装

するオブジェクト

○ ○ ○

コア機能コア機能

コア機能コア機能 Win WPF UWP

空/Null のデータポイ

ントの処理

○ ○ ○

ヒットテスト ○ ○ ○

注釈 ○ ○ ○

レンダリングモード ネイティブ/DirectX ネイティ

ブ/Direct2D/Direct3Dネイティブ/Direct3D

傾向線 ○ ○ ○

座標変換メソッド ○ ○ ○

バッチ更新 ○ ○ ○

シリアライズのサポー

○ ○

Sunburst Drilldown ○ ○ ○

TreeMap Drilldown ○ ○ ○

外見外見

外見外見 Win WPF UWP

  FlexChart for WinForms

11 Copyright © GrapeCity, Inc. All rights reserved.         

Page 13: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

定義済みパレット 16 16 16

カスタムパレット ○ ○ ○

背景色 ○ ○ ○

背景画像 ○ ○ ○

背景グラデーション/ハッチスタイル

○ ○ ○

境界線および境界線

スタイル

○ ○ ○

チャート領域チャート領域

チャート領域チャート領域 Win WPF UWP

ヘッダー ○ ○ ○

フッター ○ ○ ○

ヘッダー/フッターの

境界線

○ ○ ○

ヘッダー/フッターの

配置

○ ○ ○

チャート領域の回転 ○ ○ ○

プロット領域プロット領域

プロット領域プロット領域 Win WPF UWP

プロットマージン ○

プロット要素のマー

カー

FlexChart では、折れ線

シンボル、スプラインシ

ンボル、および散布図

のチャートタイプでサ

ポートされています。

FlexChart では、折れ線

シンボル、スプラインシ

ンボル、および散布図

のチャートタイプでサ

ポートされています。

FlexChart では、折れ線

シンボル、スプラインシ

ンボル、および散布図

のチャートタイプでサ

ポートされています。

マーカーのサイズ ○ ○ ○

マーカー:境界線お

よび境界線スタイル

設定

○ ○ ○

プロット要素の背景

画像/グラデーショ

ン/ハッチスタイル

○ ○ ○

データラベルデータラベル

データラベルデータラベル Win WPF UWP

オフセット ○ ○ ○

接続線 ○ ○ ○

境界線および境界線ス ○ ○ ○

FlexChart for WinForms  

12 Copyright © GrapeCity, Inc. All rights reserved.         

Page 14: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

タイル設定

スタイル設定 ○ ○ ○

書式文字列 ○ ○ ○

カスタムコンテンツ ○ ○ ○

Manage overlapping ○ ○ ○

デカルト座標グラフの

位置

下/中央/左/なし/右/上 下/中央/左/なし/右/上 下/中央/左/なし/右/上

円グラフの位置 中央/内側/外側/なし 中央/内側/外側/なし 中央/内側/外側/なし

注釈注釈

Annotations Win WPF UWP

定義済みの図形 ○ ○ ○

位置 ○ ○ ○

注釈の添付 ○ ○ ○

オフセット ○ ○ ○

スタイリング ○ ○ ○

ツールチップ ○ ○ ○

コネクタ ○ ○ ○

カスタム化 ○ ○ ○

軸軸

軸軸 Win WPF UWP

軸:第 1 X/Y ○ ○ ○

軸:第 2 X/Y ○ ○ ○

軸:複数の第 2 X/Y ○ ○ ○

軸ラベル:書式文字

○ ○ ○

軸ラベル:Hide ○ ○ ○

軸ラベル:スタイル設

○ ○ ○

軸範囲(Min/Max)の値

○ ○ ○

軸:Hide ○ ○ ○

軸:対数 ○ ○ ○

Axis: Overlapping ○ ○ ○

軸:逆転 ○ ○ ○

Axis Grouping ○ ○ ○

  FlexChart for WinForms

13 Copyright © GrapeCity, Inc. All rights reserved.         

Page 15: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸線のスタイル設定 ○ ○ ○

ラベル:配置 ○ ○ ○

ラベル:角度 ○ ○ ○

ラベル:重なっている

ラベルを非表示にす

○ ○ ○

主/副グリッド線 ○ ○ ○

大/小目盛りマーク ○ ○ ○

ラベル単位/データ単

○ ○ ○

タイトルおよびタイト

ルのスタイル設定

○ ○ ○

原点の設定 任意の値 任意の値 ○

目盛りマークの位置 交差/内側/外側/なし 交差/内側/外側/なし 交差/内側/外側/なし

位置 上/下/左/右/自動/なし 上/下/左/右/自動/なし 上/下/左/右/自動/なし

積層グループ ○ ○ ○

系列系列

系列系列 Win WPF UWP

複数の系列 ○ ○ ○

データ連結 ○ ○ ○

系列レベルの

チャートタイプ

○ ○ ○

スタイル設定 ○ ○ ○

表示/非表示 プロット/凡例/プロットと

凡例/非表示

プロット/凡例/プロットと

凡例/非表示

プロット/凡例/プロットと

凡例/非表示

条件付き書式設

○ ○ ○

TextWrap ○ ○ ○

カスタムの凡例ア

イコン

○ ○ ○

凡例凡例

凡例凡例 Win WPF UWP

タイトル ○ ○ ○

タイトルのスタイル ○ ○ ○

凡例での系列の表

示/非表示の切り替

○ ○ ○

FlexChart for WinForms  

14 Copyright © GrapeCity, Inc. All rights reserved.         

Page 16: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

方向 自動/垂直/水平 自動/垂直/水平 自動/垂直/水平

位置 左/上/右/下 左/上/右/下 左/上/右/下

TextWrap ○ ○ ○

Custom LegendIcon

○ ○ ○

マーカーシンボルマーカーシンボル

マーカーシンボルマーカーシンボル Win WPF UWP

ボックス ○ ○ ○

ドット ○ ○ ○

ユーザー操作ユーザー操作

ユーザー操作ユーザー操作 Win WPF UWP

アニメーション ○ ○ ○

ツールチップ ○ ○ ○

系列選択 ○ ○ ○

ポイント選択 ○ ○ ○

ラインマーカー(十字

線)

○ ○ ○

範囲セレクタ ○ ○ ○

ズーム ○ ○ ○

スクロール ○ ○ ○

ツールチップツールチップ

ツールチップツールチップ Win WPF UWP

自動ツールチップ ○ ○ ○

カスタムコンテンツ ○ ○ ○

遅延の表示 ○ ○ ○

スタイル設定 ○ ○ ○

さまざまなチャート要

素のツールチップ

円グラフ円グラフ

円グラフ円グラフ Win WPF UWP

分割されたスライス ○ ○ ○

Inner Radius ○ ○ ○

最初のスライスの開

始角度

○ ○ ○

  FlexChart for WinForms

15 Copyright © GrapeCity, Inc. All rights reserved.         

Page 17: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

エクスポートエクスポート/インポートおよび印刷インポートおよび印刷

エクスポートエクスポート/インイン

ポートおよび印刷ポートおよび印刷

Win WPF UWP

JPEG/JPG へのエク

スポート

○ ○ ○

PNG へのエクスポー

○ ○ ○

SVG へのエクスポー

BMP へのエクスポー

○ ○

印刷のサポート ○ ○ ○

フットプリントフットプリント

フットプリントフットプリント Win WPF UWP

アセンブリサイズ 229KB 183KB 218KB

WinForms チャートの比較チャートの比較

チャートタイプチャートタイプ

グラフグラフ

タイプタイプ

FlexChart MS チャートチャート

面 ○ ○

積層面 ○ ○

100% 積層面 ○ ○

スプライン面 ○ ○

積層スプライン面 ○

100% 積層スプライン面 ○

StepArea ○

横棒 ○ ○

積層横棒 ○ ○

StackedBar100 ○ ○

バブル ○ ○

ローソク足 ○ ○

縦棒 ○ ○

積層縦棒 ○ ○

100% 積層縦棒 ○ ○

FlexChart for WinForms  

16 Copyright © GrapeCity, Inc. All rights reserved.         

Page 18: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Histogram ○ ○

Ranged Histogram ○ ○

Pareto ○

Gantt ○

Floating Bar ○

株価/Hi-Lo-Open-Close ○ ○

折れ線 ○ ○

積層折れ線 ○

100% 積層折れ線 ○

スプライン ○ ○

積層スプライン ○

100% 積層スプライン ○

折れ線シンボル ○

積層折れ線シンボル ○

100% 積層折れ線シンボル ○

スプラインシンボル ○

積層スプラインシンボル ○

100% 積層スプラインシンボル ○

Step ○

StepSymbols ○

円 ○ ○

ドーナツ円 ○ ○

分割円 ○ ○

分割ドーナツ円 ○ ○

点/散布図 ○ ○

Radar ○ ○

Polar ○ ○

Box-and-Whisker ○ ○

ErrorBar ○ ○

Funnel ○ ○

Sunburst ○

TreeMap ○

Waterfall ○

2D ○ ○

平均足 *

  FlexChart for WinForms

17 Copyright © GrapeCity, Inc. All rights reserved.         

Page 19: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

新値足/新値三本足 * ○

練行足 * ○

カギ足 * ○

カラムボリューム *

エクイボリューム *

ローソクボリューム *

アームズローソクボリューム *

FastLine ○

FastPoint ○

StepLine ○

RangeBar ○

RangeColumn ○

SplineRange ○

範囲 ○

PointAndFigure ○

ポーラ ○

レーダー ○

BoxPlot ○

ErrorBar ○

じょうご ○

ピラミッド ○

3D ○

* FinancialChart で使用可能

データ連結データ連結

データ連結データ連結 FlexChart MS チャートチャート

MS SQL Server ○ ○

OLEDB ○ ○

ODBC ○ ○

オブジェクトデータソース ○ ○

Oracle ○ ○

SharePoint オブジェクト ○ ○

非連結データ ○

チャート機能チャート機能

Data Binding FlexChart MS Chart

FlexChart for WinForms  

18 Copyright © GrapeCity, Inc. All rights reserved.         

Page 20: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Annotations ○ ○

Axis binding ○ ○

Customizable data labels ○ ○

Customizable headers and footers ○ ○

データ操作データ操作

Data Manipulations FlexChart MS Chart

Aggregation With custom code ○

Sorting With custom code ○

TopN With custom code ○

コア機能コア機能

コア機能コア機能 FlexChart MS チャートチャート

空/Null のデータポイントの処理 ○ ○

ヒットテスト ○ ○

DirectX レンダリング ○

傾向線 ○

座標変換メソッド ○ ○

シリアライズのサポート ○ ○

Annotations ○ ○

Financial Analysis usingpredefined Indicators andOverlays

○ ○

データポイントのフィルタ処理 ○

データポイントのソート ○

グループ化 ○

データポイントの検索 ○

系列データのコピー/結合/分割 ○

データセットへのエクスポート ○

定義済みの式を使用した統計分

LineMarkers ○ ○

Multiple Axis ○

Multiple plot areas ○

Sunburst Drilldown ○

TreeMap Drilldown ○

  FlexChart for WinForms

19 Copyright © GrapeCity, Inc. All rights reserved.         

Page 21: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

外見外見

外見外見 FlexChart MS チャートチャート

Predefined Palettes 16 12

テーマ 16テーマ 12テーマ

カスタムパレット ○ ○

背景色 ○ ○

背景画像 ○ ○

背景グラデーション/ハッチスタイル ○

境界線および境界線スタイル ○

チャート領域チャート領域

チャート領域チャート領域 FlexChart MS チャートチャート

ヘッダー ○ ○

フッター ○

マルチヘッダー ○

ヘッダー/フッターの境界線 ○ ○

ヘッダー/フッターの配置 ○ ○

チャート領域の回転 ○

複数のチャート領域 ○ ○

表示/非表示の切り替え ○

プロット領域プロット領域

プロット領域プロット領域 FlexChart MS チャートチャート

プロット位置の設定 ○

プロットマージン ○

プロット要素のマー

カー

FlexChart では、折れ線シンボル、スプライン

シンボル、および散布図のチャートタイプで

サポートされています。

マーカーのサイズ ○ ○

画像のマーカー ○

マーカー:境界線およ

び境界線スタイル設

プロット要素の背景画

像/グラデーション/ハッチスタイル

プロット要素の境界線

および境界線スタイ

FlexChart for WinForms  

20 Copyright © GrapeCity, Inc. All rights reserved.         

Page 22: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ル設定

空のポイントのスタイ

ル設定

データラベルデータラベル

データラベルデータラベル FlexChart MS チャートチャート

オフセット ○

接続線 ○ ○

境界線および境界線スタイル設定 ○ ○

スタイル設定 ○ ○

書式文字列 ○ ○

カスタムコンテンツ ○

Manage Overlapping ○

デカルト座標グラフの位置 下/中央/左/なし/右/上 横棒グラフにの

み適用。外側/左/右/中央

円グラフの位置 中央/内側/外側/なし 内側/外側/なし

軸軸

軸軸 FlexChart MS チャートチャート

軸:第 1 X/Y ○ ○

軸:第 2 X/Y ○ ○

軸:複数の第 2 X/Y ○

軸ラベル:書式文字列 ○

軸ラベル:Hide ○ ○

軸ラベル:スタイル設定 ○ ○

軸範囲(Min/Max)の値 ○

軸:Hide ○ ○

軸:対数 ○ ○

軸:逆転 ○ ○

Axis: Grouping ○ ○

軸線のスタイル設定 ○ ○

ラベル:配置 ○

ラベル:角度 ○ ○

ラベル:重なっているラベルを非表示に

する

主/副グリッド線 ○ ○

  FlexChart for WinForms

21 Copyright © GrapeCity, Inc. All rights reserved.         

Page 23: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

大/小目盛りマーク ○ ○

ラベル単位/データ単位 ○ ○

目盛りマークの長さ ○

目盛りマークのスタイル設定 ○ ○

タイトルおよびタイトルのスタイル設定 ○ ○

原点の設定 任意の値 自動/最小値/最大値

目盛りマークの位置 交差/内側/外側/なし 交差/内側/外側/なし

位置 上/下/左/右/自動/なし

矢印のスタイル設定 ○

軸ラベル:Custom ○

軸ラベル:互い違い ○

ScaleBreaks ○

系列系列

系列系列 FlexChart MS チャートチャート

複数の系列 ○ ○

データ連結 ○ ○

系列レベルのチャートタイプ ○ ○

スタイル設定 ○ ○

表示/非表示 プロット/凡例/プロットと凡

例/非表示

プロット/プロットと凡

例/非表示

条件付き書式設定 ○

Stacked charts ○

凡例凡例

凡例凡例 FlexChart MS チャートチャート

タイトル ○ ○

タイトルのスタイル ○ ○

TextWrap ○

凡例での系列の表示/非表示の切り替

方向 自動/垂直/水平 垂直/水平/テーブル

位置 左/上/右/下 左/上/右/下

カスタム凡例項目 ○

項目の順序付け ○

複数の凡例 ○

Custom Legend Icon ○

FlexChart for WinForms  

22 Copyright © GrapeCity, Inc. All rights reserved.         

Page 24: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

マーカーシンボルマーカーシンボル

マーカーシンボルマーカーシンボル FlexChart MS チャートチャート

ボックス ○ ○

ドット ○ ○

ひし形 ○

三角 ○

十字 ○

星型 4 ○

星型 5 ○

星型 6 ○

星型 10 ○

ユーザー操作ユーザー操作

ユーザー操作ユーザー操作 FlexChart MS チャートチャート

ツールチップ ○ ○

系列選択 ○ ○

ポイント選択 ○ ○

範囲セレクタ ○

ズーム ○ ○

スクロール ○ ○

Drilldown With custom code With custom code

ドラッグ可能な注釈 ○

ツールチップツールチップ

ツールチップツールチップ FlexChart MS チャートチャート

自動ツールチップ ○

カスタムコンテンツ ○ 文字列型のみ

遅延の表示 ○

スタイル設定 ○

String type only ○

さまざまなチャート要素のツールチップ ○

Financial Chart Features

Financial Chart Features FinancialChart MS Chart

Bollinger bands overlays *

  FlexChart for WinForms

23 Copyright © GrapeCity, Inc. All rights reserved.         

Page 25: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Envelope overlay *

Fibonacci tools *

Indicators *

MACD Indicator *

Moving averages *

Overlays *

Stochastic Oscillator Indicator *

Fibonacci tools *

円グラフ円グラフ

円グラフ円グラフ FlexChart MS チャートチャート

分割されたスライス ○ ○

Inner Radius ○ ○

最初のスライスの開始角度 ○ ○

エクスポートエクスポート/インポートインポート

エクスポートエクスポート/インポートインポート FlexChart MS チャートチャート

JPEG/JPG へのエクスポート ○ ○

PNG へのエクスポート ○ ○

SVG へのエクスポート ○

BMP へのエクスポート ○

EMF へのエクスポート ○

EMfDual へのエクスポート ○

EMfPlus へのエクスポート ○

GIF へのエクスポート ○

TIFF へのエクスポート ○

バイナリファイルへの保存/ロード ○

メモリストリームへの保存/ロード ○

XML への保存/ロード ○

印刷 ○ ○

フットプリントフットプリント

フットプリントフットプリント FlexChart MS チャートチャート

アセンブリサイズ 330KB 904KB

価格決定価格決定

価格決定価格決定 FlexChart MS チャートチャート

FlexChart for WinForms  

24 Copyright © GrapeCity, Inc. All rights reserved.         

Page 26: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

価格決定 ○

クイックスタートクイックスタート

このクイックスタートでは、Visual Studio で単純な FlexChart アプリケーションを作成して実行する手順を説明します。

BMW の 3 つの車種、たとえば、ある年式の 530i、760i セダン、Z4 3.0 ロードスターを比較するとします。市街地走行時の燃

費、エンジン排気量、エンジン気筒数の 3 つのパラメータを比較します。

市街地走行時の燃費、エンジン排気量、およびエンジン気筒数を 1 つの軸(Y 軸)にプロットします。

もう 1 つの軸(X 軸)に車種をプロットします。

カテゴリは 530i、760i セダン、Z4 3.0 ロードスターの 3 つあります。

各カテゴリは 3 つの縦棒を持ちます

比較するカテゴリ数が少ない場合は、縦棒グラフを使用することが普通です。ここでは、縦棒グラフを使用して 3 つのカテゴリ

を比較します。

このチュートリアルは、データベースファイル C1NWind.mdb が <SystemDocumentsFolder>\ComponentOneSamples\Common にあると仮定します。<SystemDocumentsFolder> の部分は、ユーザーやプラットフォームごと

に異なります。

FlexChart コントロールをすばやく体験するには、以下の手順を実行します。

1. フォームへの FlexChart の追加

2. データソースへの FlexChart の連結

手順手順 1:フォームへの:フォームへの FlexChart の追加の追加

FlexChart コントロールをフォームに追加するには、次の手順を実行します。

1. 新しい Windows フォームアプリケーションフォームアプリケーションを作成します。

2. デザインビューで、ツールボックスから FlexChart コントロールをドラッグアンドドロップするか、ダブルクリックします。

FlexChart コントロールは次のように表示されます。

FlexChart は正しくフォームに追加されました。

  FlexChart for WinForms

25 Copyright © GrapeCity, Inc. All rights reserved.         

Page 27: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

手順手順 2:データソースへの:データソースへの FlexChart の連結の連結

FlexChart コントロールをフォームに追加したら、それを有効なデータソースに連結する必要があります。

以下のコードは、FlexChart をデータソースに連結して必要なデータをプロットする方法を示します。

以下のコードを正しく実行するには、コードビハインドに System.Data.OleDb 名前空間を挿入する必要があります。

Form_Load イベントに次のコードを追加します。

Visual Basic

' データソースからデータを取得しますDim conPath As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & vbCr & vbLf & "Data Source=C:\\Users\\GPCTAdmin\\Desktop\\C1NWind.mdb"Dim conQuery As String = "SELECT * FROM Cars WHERE Brand = 'BMW'"Dim da As New OleDbDataAdapter(conQuery, conPath)

' データテーブルを塗り潰しますda.Fill(dt)

' FlexChartをデータテーブルに結合しますFlexChart1.DataSource = dt

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' 系列コレクションに系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' 系列の名前を指定しますseries1.Name = "Liter"series2.Name = "Cyl"series3.Name = "MPG_City"

' 系列の名前を指定しますFlexChart1.BindingX = "Model"series1.Binding = "Liter"series2.Binding = "Cyl"series3.Binding = "MPG_City"

' チャートタイプを設定しますFlexChart1.ChartType = C1.Chart.ChartType.Column

' 凡例の位置を設定しますFlexChart1.Legend.Position = C1.Chart.Position.Right

C#

DataTable dt = new DataTable();

// データソースからデータを取得しますstring conPath = @"Provider=Microsoft.Jet.OLEDB.4.0;

FlexChart for WinForms  

26 Copyright © GrapeCity, Inc. All rights reserved.         

Page 28: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Data Source=C:\\Users\\GPCTAdmin\\Desktop\\C1NWind.mdb"; // データソースのパスを提供するstring conQuery = "SELECT * FROM Cars WHERE Brand = 'BMW'";OleDbDataAdapter da = new OleDbDataAdapter(conQuery, conPath);

// データテーブルを塗り潰しますda.Fill(dt);

//FlexChartをデータテーブルに結合しますflexChart1.DataSource = dt;

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// 系列コレクションに系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// 系列の名前を指定しますseries1.Name = "Liter";series2.Name = "Cyl";series3.Name = "MPG_City";

// X軸およびY軸を結合します flexChart1.BindingX = "Model";series1.Binding = "Liter";series2.Binding = "Cyl";series3.Binding = "MPG_City";

// チャートタイプを設定しますflexChart1.ChartType = C1.Chart.ChartType.Column;

// 凡例の位置を設定しますflexChart1.Legend.Position = C1.Chart.Position.Right;

Form_Load イベントにコードを追加したら、アプリケーションを実行して出力を確認します。

次のように、データがプロットされて表示されます。

  FlexChart for WinForms

27 Copyright © GrapeCity, Inc. All rights reserved.         

Page 29: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

これで、単純な FlexChart アプリケーションが作成されました。

これで、クイックスタートは終了です。

FlexChart の理解の理解

FlexChart コントロールの使用を開始するには、FlexChart のすべての基本とタイプを十分に理解する必要があります。

したがって、このセクションでは、コントロールの基本をわかりやすく説明します。

FlexChart の基本とチャートタイプの詳細については、次のリンクをクリックしてください。

FlexChart の基本

FlexChart タイプ

FlexChart の基本の基本

FlexChart は次の要素で構成されます。

ヘッダーとフッター

凡例

プロット領域

系列

コントロールは、これらの要素をオブジェクトによって表現し、その関連プロパティを提供する機能豊富なオブジェクトモデルを

持ちます。

次の図に、さまざまな要素を示します。

FlexChart for WinForms  

28 Copyright © GrapeCity, Inc. All rights reserved.         

Page 30: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ヘッダーとフッターヘッダーとフッター

ヘッダーとフッターは、チャートに関する説明や関連情報を表示するために使用されます。

FlexChart では、これらの要素は Header プロパティと Footer プロパティを使用して設定されます。どちらのプロパティも、以

下のプロパティから構成される ChartTitle オブジェクトを返します。

プロパティプロパティ 説明説明

Content タイトルコンテンツを設定します(ヘッダーまたはフッター)。

Style タイトルのフォントと色を設定するプロパティを含みます。

HorizontalAlignment タイトルの水平位置を決定します。

Border タイトルが境界線を持つかどうかを決定します。

BorderStyle タイトルの境界線のスタイルを設定するプロパティが含まれます。

ヘッダーとフッターは、設計時にもコードからも FlexChart に追加できます。

  FlexChart for WinForms

29 Copyright © GrapeCity, Inc. All rights reserved.         

Page 31: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

設計時に要素を追加するには、プロパティウィンドウで、[ヘッダー]および[フッター]ノードに移動する必要があります。実行時

に要素を指定するには、コードビハインドで Content プロパティを設定する必要があります。

凡例凡例

凡例は、各データ系列のエントリをチャート内に表示します。凡例には、色やシンボルとデータ系列の対応が表示されます。

FlexChart の凡例は、Legend プロパティを使用して設定されます。このプロパティは、次のプロパティを持つ Legend オブジェ

クトを返します。

プロパティプロパティ 説明説明

Style 凡例のスタイルを設定するプロパティが含まれます。

Position 凡例の位置を決定します。

凡例の詳細については、「FlexChart の凡例」を参照してください。

軸軸

チャートには、X と Y という 2 つの主軸があります。もちろん、円グラフを使用する場合は例外です。

FlexChart for WinForms  

30 Copyright © GrapeCity, Inc. All rights reserved.         

Page 32: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart の X 軸と Y 軸はそれぞれ AxisX プロパティと AxisY プロパティによって表現されます。どちらのプロパティも、以下

のプロパティから構成される Axis オブジェクトを返します。

レイアウトおよびスタイルのプロパティレイアウトおよびスタイルのプロパティ

プロパティプロパティ 説明説明

AxisLine 軸線が表示されるかどうかを決定します。

AxisType 軸のタイプを含みます。

Position 軸の位置を設定します。

Reversed 軸の方向を反転します。

Style 軸のスタイルを設定するプロパティが含まれます。

Title 軸の横に表示するタイトルテキストを設定します。

軸ラベルのプロパティ軸ラベルのプロパティ

プロパティプロパティ 説明説明

Format 軸ラベルの書式文字列を設定します。

LabelAlignment 軸ラベルの配置を設定します。

LabelAngle 軸ラベルの回転角度を設定します。

Labels 軸ラベルが表示されるかどうかを決定します。

MajorUnit 軸ラベル間の単位数を設定します。

スケーリング、目盛りマーク、グリッド線のプロパティスケーリング、目盛りマーク、グリッド線のプロパティ

プロパティプロパティ 説明説明

ActualMax 現在の軸の最大値を取得します。

ActualMin 現在の軸の最小値を取得します。

  FlexChart for WinForms

31 Copyright © GrapeCity, Inc. All rights reserved.         

Page 33: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

MajorGrid 軸がグリッド線を含むかどうかを決定します。

MajorGridStyle 大目盛りマークに垂直に描画されるグリッド線の外観を制御するプロパティが含まれます。

MajorTickMarks 軸の目盛りマークの場所を設定します。

Max 軸の最大値を設定します。

Min 軸の最小値を設定します。

Origin 軸がその直交軸と交差する位置の値を設定します。

Axis Grouping Properties

Property Description

GroupNames Sets the group name for the axis labels.

GroupItemsPath Sets the group name for the axis labels in hierarchical data.

GroupSeparator Set the axis group separator.

GroupProvider Sets the axis group provider.

軸の詳細については、「FlexChart の軸」を参照してください。

プロット領域プロット領域

プロット領域には、X 軸と Y 軸にプロットされるデータが含まれます。

FlexChart のプロット領域は、ChartStyle オブジェクトの次のプロパティによってカスタマイズできます。

プロパティプロパティ 説明説明

Fill プロット領域の色を設定します。

Font プロット領域のフォントを設定します。

Stroke プロット領域のストロークブラシを設定します。

FlexChart for WinForms  

32 Copyright © GrapeCity, Inc. All rights reserved.         

Page 34: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

StrokeDashPattern プロット領域のストロークの破線パターンを設定します。

StrokeWidth プロット領域のストロークの幅を設定します。

LinePattern プロット領域の線の点描のパターンをを設定します。

さらに、FlexChartを使用すると、複数のプロット領域を作成し、1つの系列を別のプロット領域に表示することでデータの可視

性を高めることができます。

複数のプロット領域の詳細については、「複数のプロット領域」を参照してください。

系列系列

系列は、チャートのプロット領域内で、関連するデータポイントをグループ化します。

次の図に、FlexChart のデータ系列の例を示します。

FlexChart のデータ系列は Series オブジェクトによって制御されます。このオブジェクトは次のプロパティで構成されます。

プロパティプロパティ 説明説明

AxisX 系列の X 軸を設定します。

AxisY 系列の Y 軸を設定します。

Binding 系列の Y 値を含むプロパティの名前を設定します。

BindingX 系列の X 値を含むプロパティの名前を設定します。

ChartType 系列のチャートタイプを設定します。

DataSource 系列データを含むオブジェクトのコレクションを設定します。

Name 凡例に表示される、系列のテキストを設定します。

Style 系列のスタイルを設定します。

SymbolMarker 系列の各データポイントで使用されるマーカーの形を設定します。このプロパティは、Scatter、LineSymbols、および SplineSymbols チャートタイプだけに適用されます。

SymbolSize この系列のレンダリングに使用されるシンボルのサイズを設定します。

  FlexChart for WinForms

33 Copyright © GrapeCity, Inc. All rights reserved.         

Page 35: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

SymbolStyle この系列で使用されるシンボルのスタイルを設定します。

Visibility 系列を表示するかどうかを決定し、表示する場合はその位置を設定します。

系列の詳細については、「FlexChart の系列」を参照してください。

FlexChart タイプタイプ

FlexChart は、エンドユーザーのあらゆるデータ視覚化要件を満たす包括的なチャートタイプを提供しています。

以下は、このコントロールが提供するすべてのチャートタイプのリストです。アプリケーションで使用するチャートタイプに基づい

て、対応するリンクをクリックすると、主要な情報が表示されます。

面グラフ

横棒グラフ

バブルチャート

縦棒グラフ

株価チャート(財務チャート)

Floating Barファンネル

Gantt ChartHeat Mapヒストグラム

折れ線グラフ

折れ線シンボルグラフ

複合

ParetoRangedHistogram散布図

スプライングラフ

スプライン面グラフ

スプラインシンボルグラフ

階段グラフ

面面

面グラフは、一定期間のデータの変化を表します。Y 軸のデータポイント間を接続し、系列と X 軸の間の領域を埋めることで、

データ系列を表現します。さらに、データ系列は、追加されたときと同じ順番で背面から前面に表示されます。

FlexChart を使用すると、設計時および実行時の両方で面グラフを作成できます。設計時の場合は、プロパティウィンドウで

ChartType プロパティを Area に設定し、実行時の場合は同じプロパティをコードで設定します。

Stacking プロパティを Stacked または Stacked100pc に設定すると、積層面グラフを作成できます。

AAPL、CIEN、INTC という 3 つの株式銘柄があるとします。これらは株式市場で 2013 から 2015 年まで継続して高値を付け

ています。2015 年末に、これらの株が対前年比で上昇したか下落したかを(株価に基づいて)特定する分析を行います。分析

は、2013 年、2014 年、2015 年の株価に基づいて行われます。

株価は一定期間で変動するデータなので、このシナリオには面グラフが適しています。

サンプルデータテーブルサンプルデータテーブル

株式銘柄株式銘柄 2013 2014 2015

AAPL 95 109 120

CIEN 89 104 115

FlexChart for WinForms  

34 Copyright © GrapeCity, Inc. All rights reserved.         

Page 36: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

INTC 75 95 110

重要ポイント重要ポイント

面グラフ面グラフ

上のチャートは、プロットされた 3 年間の株価によって株価が上昇していることを示しています。3 つの株価の 3 つの領域が 3色でレンダリングされています。

系列の数:3(AAPL、CIEN、INTC)ポイントごとの Y 値の数:1

次のコードは、このシナリオの実装です。

Visual Basic

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2013, 95),New System.Drawing.Point(2014, 109),New System.Drawing.Point(2015, 120)}series1.Name = "AAPL"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2013, 89),

  FlexChart for WinForms

35 Copyright © GrapeCity, Inc. All rights reserved.         

Page 37: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

New System.Drawing.Point(2014, 104),New System.Drawing.Point(2015, 115)}series2.Name = "CIEN"

series3.BindingX = "X"series3.Binding = "Y"series3.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2013, 75),New System.Drawing.Point(2014, 95),New System.Drawing.Point(2015, 110)}series3.Name = "INTC"

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' チャートタイプを面グラフに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Area

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2013,95),new System.Drawing.Point(2014,109),new System.Drawing.Point(2015,120) };series1.Name = "AAPL";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2013,89),new System.Drawing.Point(2014,104),new System.Drawing.Point(2015,115) };series2.Name = "CIEN";

series3.BindingX = "X";series3.Binding = "Y";series3.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2013,75),new System.Drawing.Point(2014,95),new System.Drawing.Point(2015,110) };series3.Name = "INTC";

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// チャートタイプを面グラフに設定しますflexChart1.ChartType = C1.Chart.ChartType.Area;

FlexChart for WinForms  

36 Copyright © GrapeCity, Inc. All rights reserved.         

Page 38: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

横棒横棒

横棒グラフは、さまざまなカテゴリの値を比較したり、データ系列内の経時的な変動を表示します。このチャートは、X 軸にプ

ロットされるデータ系列を横棒として表示し、カテゴリまたは項目を Y 軸に配置します。

ある小売店が 6 種類の飲料品を注文するとします。注文は卸業者に行われ、卸業者は商品について必要な情報を小売店に

提供します。この情報は、商品の単位単価、在庫単位数、発注可能単位数で構成されます。

小売店が商品を注文する条件は、単価 < $25、在庫単位数 > 20、発注可能単位数 > 20 です。

小売店がどの商品を注文するかを決めるために役立つ比較チャートを作成してみます。比較する商品の数は 6 なので、この

場合は横棒グラフが適しています。

サンプルデータテーブルサンプルデータテーブル

飲み物飲み物 単位価格単位価格 ($) 在庫にあり単位在庫にあり単位 注目中の単位注目中の単位

紅茶 18 39 40

コーヒー 19 17 70

コクテル 10 13 30

ノンアルコールカクテル 22 53 20

ソフトドリンク 21 120 70

ミネラルウォーター 25 90 40

横棒グラフ横棒グラフ

上のグラフは、6 つの商品の単価、在庫単位数、注目中の単位を比較しています。3 つの系列の横棒が異なる色でレンダリン

グされています。

系列の数:3(単位価格、在庫にあり単位、注目中の単位)

ポイントごとの Y 値の数:1

  FlexChart for WinForms

37 Copyright © GrapeCity, Inc. All rights reserved.         

Page 39: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

比較する商品の数:6(商品 ID < 7)

次のコードは、このシナリオの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Product Comparison")

' データテーブルに列を追加しますdt.Columns.Add("Beverages", GetType(String))dt.Columns.Add("Unit Price", GetType(Integer))dt.Columns.Add("Units In Stock", GetType(Integer))dt.Columns.Add("Units On Order", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add("紅茶", 18, 39, 40)dt.Rows.Add("コーヒー", 19, 17, 70)dt.Rows.Add("コクテル", 10, 13, 30)dt.Rows.Add("モクテル", 22, 53, 20)dt.Rows.Add("ソフトドリンク", 21, 120, 70)dt.Rows.Add("ミネラルウォーター", 25, 90, 40)

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

' X軸を結合しますFlexChart1.BindingX = "Beverages"

' Y軸を結合しますseries1.Binding = "Unit Price"series2.Binding = "Units In Stock"series3.Binding = "Units On Order"

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

' チャートタイプを横棒グラフに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Bar

C#

// データテーブルを作成しますDataTable dt = new DataTable("Product Comparison");

// データテーブルに列を追加します

FlexChart for WinForms  

38 Copyright © GrapeCity, Inc. All rights reserved.         

Page 40: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

dt.Columns.Add("Beverages", typeof(string));dt.Columns.Add("Unit Price", typeof(int));dt.Columns.Add("Units In Stock", typeof(int));dt.Columns.Add("Units On Order", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("紅茶", 18, 39, 40);dt.Rows.Add("コーヒー", 19, 17, 70); dt.Rows.Add("コクテル ", 10, 13, 30); dt.Rows.Add("モクテル", 22, 53, 20); dt.Rows.Add("ソフトドリンク", 21, 120, 70); dt.Rows.Add("ミネラルウォーター", 25, 90, 40);

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸を結合しますflexChart1.BindingX = "Beverages";

// Y軸を結合しますseries1.Binding = "Unit Price";series2.Binding = "Units In Stock";series3.Binding = "Units On Order"; // 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// set the chart type to barflexChart1.ChartType = C1.Chart.ChartType.Bar;

バブルバブル

バブルチャートは、基本的に散布図グラフの 1 つのタイプですが、多次元データのグラフィカル表現に使用されます。各ポイン

トの付加的なデータ値をポイントのサイズを変えて表示します。チャートタイプは、データポイントをバブル(データマーカー)の

形式で表現し、その X 座標と Y 座標が 2 つのデータ値で決定され、サイズが 3 番目の変数の値を示します。

2003 年に設立された XYZ という会社があるとします。XYZ 社の人事部は、2003 年から 2015 年までの同社の成長を示す分

析報告書を作成する必要があります。この分析で考慮するパラメータは、各年の平均社員数と年間利益です。

各 X 値に 2 つのデータ値(Y 値)を表す必要があるため、この分析報告書にはバブルチャートを使用できます。このチャートの

縦軸で各年の社員数を表示し、バブルのサイズでその年の収益を表します。

サンプルデータテーブルサンプルデータテーブル

年年 従業員数従業員数 年間収入(年間収入(1000 $))

  FlexChart for WinForms

39 Copyright © GrapeCity, Inc. All rights reserved.         

Page 41: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

2003 18 50

2004 20 55

2005 41 80

2006 64 100

2007 82 130

2008 105 160

2009 120 200

2010 65 105

2011 67 106

2012 63 100

2013 61 110

2014 79 115

2015 82 120

バブルチャートバブルチャート

上のチャートは、2003 年から 2015 年までの XYZ 社の成長を示しています。

系列の数:1(従業員数と年間収入)

ポイントごとの Y 値の数:2

次のコードは、このサンプルの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("XYZ会社,2003年-2015年")

FlexChart for WinForms  

40 Copyright © GrapeCity, Inc. All rights reserved.         

Page 42: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データテーブルに列を追加しますdt.Columns.Add("年", GetType(Integer))dt.Columns.Add("従業員数", GetType(Integer))dt.Columns.Add("年間収入", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add(2003, 18, 50)dt.Rows.Add(2004, 20, 55)dt.Rows.Add(2005, 41, 80)dt.Rows.Add(2006, 64, 100)dt.Rows.Add(2007, 82, 130)dt.Rows.Add(2008, 105, 160)dt.Rows.Add(2009, 120, 200)dt.Rows.Add(2010, 65, 105)dt.Rows.Add(2011, 67, 106)dt.Rows.Add(2012, 63, 100)dt.Rows.Add(2013, 61, 110)dt.Rows.Add(2014, 79, 115)dt.Rows.Add(2015, 82, 120)

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成します Dim series1 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

' X軸およびY軸を結合しますseries1.BindingX = "年"series1.Binding = "従業員数,年間収入"

' チャートタイプをバブルチャートに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Bubble

C#

// データテーブルを作成しますDataTable dt = new DataTable("XYZ会社,2003年-2015年");

// データテーブルに列を追加しますdt.Columns.Add("年", typeof(int));dt.Columns.Add("従業員数", typeof(int));dt.Columns.Add("年間収入", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add(2003, 18, 50);dt.Rows.Add(2004, 20, 55);dt.Rows.Add(2005, 41, 80);dt.Rows.Add(2006, 64, 100);dt.Rows.Add(2007, 82, 130);dt.Rows.Add(2008, 105, 160);dt.Rows.Add(2009, 120, 200);dt.Rows.Add(2010, 65, 105);dt.Rows.Add(2011, 67, 106);dt.Rows.Add(2012, 63, 100);dt.Rows.Add(2013, 61, 110);dt.Rows.Add(2014, 79, 115);dt.Rows.Add(2015, 82, 120);

  FlexChart for WinForms

41 Copyright © GrapeCity, Inc. All rights reserved.         

Page 43: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成します C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸およびY軸を結合しますseries1.BindingX = "年";series1.Binding = "従業員数,年間収入";

// チャートタイプをバブルに設定しますflexChart1.ChartType = C1.Chart.ChartType.Bubble;

箱ひげ図箱ひげ図

箱ひげ図系列を使用すると、データのグループを範囲、四分位数、中央値で表示できます。その名前が示すとおり、系列データが箱とひげで

描写されます。

箱は、四分位数(上下)と中央値を示す範囲です。一方、ひげは、箱から垂直に伸びる線です。これらの線は、上下の四分位数の外側にある

データのばらつきを示します。さらに、これらの線の外側にあるポイントは、異常値と呼ばれます。

箱ひげ系列は、統計分布を視覚化したり、複数のデータセットをグラフィカルに検証する場合に理想的です。FlexChart では、この系列で次の

機能を使用できます。

四分位数四分位数:四分位数を計算するために中央値を含めるか除外するかを指定します。四分位数の計算を指定するに

は、QuartileCalculation 列挙を使用して QuartileCalculation プロパティを設定します。

内側ポイント内側ポイント:ShowInnerPoints プロパティを設定して、内側ポイントを表示するかどうかを示します。

異常値異常値:ShowOutliers プロパティを設定して、異常値を表示するかどうかを示します。

平均線平均線:ShowMeanLine プロパティを設定して、平均線を表示します。

平均マーク平均マーク:ShowMeanMarks プロパティを設定して、平均マークを表示します。

次の図に、各学校の学生の 3 教科の点数を比較するために、これらのデータの四分位数、中央値、ひげを示します。

FlexChart for WinForms  

42 Copyright © GrapeCity, Inc. All rights reserved.         

Page 44: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードは、学校 A、B、C の学生が取った 3 教科の点数に関するデータを使用します。このコードは、FlexChart で箱ひげ系列を実装する

方法を示します。

Visual Basic

Public Sub New() InitializeComponent() SetupChart()End Sub

Private Sub InitializeComponent() Throw New NotImplementedException()End Sub

Private Sub SetupChart() flexChart1.BeginUpdate()

' データソースを指定します。 flexChart1.DataSource = CreateForBoxWhisker()

' X値を含むプロパティを設定します。 flexChart1.BindingX = "ClassName"

' 系列コレクションをクリアします。 flexChart1.Series.Clear()

' 1番目のBoxwhisker系列を作成し、さまざまなプロパティを設定設定します。 Dim boxWhiskerA As C1.Win.Chart.BoxWhisker = New BoxWhisker() boxWhiskerA.Name = "学校A" boxWhiskerA.Binding = "SchoolA" boxWhiskerA.QuartileCalculation = QuartileCalculation.InclusiveMedian boxWhiskerA.ShowInnerPoints = True boxWhiskerA.ShowOutliers = True boxWhiskerA.ShowMeanLine = True boxWhiskerA.ShowMeanMarks = True

  FlexChart for WinForms

43 Copyright © GrapeCity, Inc. All rights reserved.         

Page 45: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Dim bindAxis = New Y_AxisBinding() {New Y_AxisBinding() With { .d = 10, .str = "10 (Fail)" }, New Y_AxisBinding() With { .d = 20, .str = "20 (Fail)" }, New Y_AxisBinding() With { .d = 30, .str = "30 (Fail)" }, New Y_AxisBinding() With { .d = 40, .str = "40 (Pass)" }, New Y_AxisBinding() With { .d = 50, .str = "50 (Pass)" }, New Y_AxisBinding() With { .d = 60, .str = "60 (Pass)" }, New Y_AxisBinding() With { .d = 70, .str = "70 (Pass)" }}

' 2番目のBoxwhisker系列を作成し、さまざまなプロパティを設定します。 Dim boxWhiskerB As C1.Win.Chart.BoxWhisker = New BoxWhisker() boxWhiskerB.Name = "SchoolB" boxWhiskerB.Binding = "学校B" boxWhiskerB.QuartileCalculation = QuartileCalculation.InclusiveMedian boxWhiskerB.ShowInnerPoints = True boxWhiskerB.ShowOutliers = True boxWhiskerB.ShowMeanLine = True boxWhiskerB.ShowMeanMarks = True

' 3番目のBoxwhisker系列を作成し、さまざまなプロパティを設定します。 Dim boxWhiskerC As C1.Win.Chart.BoxWhisker = New BoxWhisker() boxWhiskerC.Name = "学校C" boxWhiskerC.Binding = "SchoolC" boxWhiskerC.QuartileCalculation = QuartileCalculation.InclusiveMedian boxWhiskerC.ShowInnerPoints = True boxWhiskerC.ShowOutliers = True boxWhiskerC.ShowMeanLine = True boxWhiskerC.ShowMeanMarks = True

' 系列コレクションに系列を追加します。 flexChart1.Series.Add(boxWhiskerA) flexChart1.Series.Add(boxWhiskerB) flexChart1.Series.Add(boxWhiskerC)

flexChart1.EndUpdate()End Sub

' データソースを作成します。Public Shared Function CreateForBoxWhisker() As List(Of ClassScore) Dim result = New List(Of ClassScore)() result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 46, .SchoolB = 53, .SchoolC = 66 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 61, .SchoolB = 55, .SchoolC = 65 }) result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 58,

FlexChart for WinForms  

44 Copyright © GrapeCity, Inc. All rights reserved.         

Page 46: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

.SchoolB = 56, .SchoolC = 67 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 58, .SchoolB = 51, .SchoolC = 64 }) result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 63, .SchoolB = 53, .SchoolC = 45 }) result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 63, .SchoolB = 50, .SchoolC = 65 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 60, .SchoolB = 45, .SchoolC = 67 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 62, .SchoolB = 53, .SchoolC = 66 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 63, .SchoolB = 54, .SchoolC = 64 }) result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 63, .SchoolB = 52, .SchoolC = 67 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 69, .SchoolB = 66, .SchoolC = 71 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 48, .SchoolB = 67, .SchoolC = 50 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 54, .SchoolB = 50, .SchoolC = 56 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 60, .SchoolB = 56, .SchoolC = 64 }) result.Add(New ClassScore() With { .ClassName = "数学",

  FlexChart for WinForms

45 Copyright © GrapeCity, Inc. All rights reserved.         

Page 47: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

.SchoolA = 71, .SchoolB = 65, .SchoolC = 50 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 48, .SchoolB = 70, .SchoolC = 72 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 53, .SchoolB = 40, .SchoolC = 80 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 60, .SchoolB = 56, .SchoolC = 67 }) result.Add(New ClassScore() With { .ClassName = "数学", .SchoolA = 61, .SchoolB = 56, .SchoolC = 45 }) result.Add(New ClassScore() With { .ClassName = "英語", .SchoolA = 63, .SchoolB = 58, .SchoolC = 64 }) result.Add(New ClassScore() With { .ClassName = "理学", .SchoolA = 59, .SchoolB = 54, .SchoolC = 65 })

Return resultEnd Function

Public Class ClassScore Public Property ClassName() As String Get Return m_ClassName End Get Set m_ClassName = Value End Set End Property Private m_ClassName As String Public Property SchoolA() As Double Get Return m_SchoolA End Get Set m_SchoolA = Value End Set End Property Private m_SchoolA As Double Public Property SchoolB() As Double Get Return m_SchoolB End Get Set m_SchoolB = Value End Set End Property

FlexChart for WinForms  

46 Copyright © GrapeCity, Inc. All rights reserved.         

Page 48: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Private m_SchoolB As Double Public Property SchoolC() As Double Get Return m_SchoolC End Get Set m_SchoolC = Value End Set End Property Private m_SchoolC As DoubleEnd Class

Public Class Y_AxisBinding Public Property d() As Double Get Return m_d End Get Set m_d = Value End Set End Property Private m_d As Double Public Property str() As String Get Return m_str End Get Set m_str = Value End Set End Property Private m_str As String

' public int d { get; set; }

End Class

C#

public Form1(){ InitializeComponent(); SetupChart();}void SetupChart(){ flexChart1.BeginUpdate();

// データソースを指定します。 flexChart1.DataSource = CreateForBoxWhisker();

// X値を含むプロパティを設定します。 flexChart1.BindingX = "ClassName";

// 系列コレクションをクリアします。 flexChart1.Series.Clear();

// 1番目のBoxwhisker系列を作成し、さまざまなプロパティを設定設定します。 C1.Win.Chart.BoxWhisker boxWhiskerA = new BoxWhisker(); boxWhiskerA.Name = "学校A"; boxWhiskerA.Binding = "SchoolA"; boxWhiskerA.QuartileCalculation = QuartileCalculation.InclusiveMedian; boxWhiskerA.ShowInnerPoints = true; boxWhiskerA.ShowOutliers = true; boxWhiskerA.ShowMeanLine = true; boxWhiskerA.ShowMeanMarks = true;

var bindAxis = new Y_AxisBinding[] { new Y_AxisBinding {d=10,str="10 (Fail)"}, new Y_AxisBinding {d=20,str="20 (Fail)"}, new Y_AxisBinding {d=30,str="30 (Fail)"},

  FlexChart for WinForms

47 Copyright © GrapeCity, Inc. All rights reserved.         

Page 49: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

new Y_AxisBinding {d=40,str="40 (Pass)"}, new Y_AxisBinding {d=50,str="50 (Pass)"}, new Y_AxisBinding {d=60,str="60 (Pass)"}, new Y_AxisBinding {d=70,str="70 (Pass)"},

};

// 2番目のBoxwhisker系列を作成し、さまざまなプロパティを設定します。 C1.Win.Chart.BoxWhisker boxWhiskerB = new BoxWhisker(); boxWhiskerB.Name = "学校B"; boxWhiskerB.Binding = "SchoolB"; boxWhiskerB.QuartileCalculation = QuartileCalculation.InclusiveMedian; boxWhiskerB.ShowInnerPoints = true; boxWhiskerB.ShowOutliers = true; boxWhiskerB.ShowMeanLine = true; boxWhiskerB.ShowMeanMarks = true;

// 3番目のBoxwhisker系列を作成し、さまざまなプロパティを設定します。 C1.Win.Chart.BoxWhisker boxWhiskerC = new BoxWhisker(); boxWhiskerC.Name = "学校C"; boxWhiskerC.Binding = "SchoolC"; boxWhiskerC.QuartileCalculation = QuartileCalculation.InclusiveMedian; boxWhiskerC.ShowInnerPoints = true; boxWhiskerC.ShowOutliers = true; boxWhiskerC.ShowMeanLine = true; boxWhiskerC.ShowMeanMarks = true; // 系列コレクションに系列を追加します。 flexChart1.Series.Add(boxWhiskerA); flexChart1.Series.Add(boxWhiskerB); flexChart1.Series.Add(boxWhiskerC);

flexChart1.EndUpdate();}

// データソースを作成します。public static List<ClassScore> CreateForBoxWhisker(){ var result = new List<ClassScore>(); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 46, SchoolB = 53, SchoolC = 66 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 61, SchoolB = 55, SchoolC = 65 }); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 58, SchoolB = 56, SchoolC = 67 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 58, SchoolB = 51, SchoolC = 64 }); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 63, SchoolB = 53, SchoolC = 45 }); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 63, SchoolB = 50, SchoolC = 65 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 60, SchoolB = 45, SchoolC = 67 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 62, SchoolB = 53, SchoolC = 66 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 63, SchoolB = 54, SchoolC = 64 }); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 63, SchoolB = 52, SchoolC = 67 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 69, SchoolB = 66, SchoolC = 71 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 48, SchoolB = 67, SchoolC = 50 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 54, SchoolB = 50, SchoolC = 56 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 60, SchoolB = 56, SchoolC = 64 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 71, SchoolB = 65, SchoolC = 50 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 48, SchoolB = 70, SchoolC = 72 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 53, SchoolB = 40, SchoolC = 80 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 60, SchoolB = 56, SchoolC = 67 }); result.Add(new ClassScore() { ClassName = "数学", SchoolA = 61, SchoolB = 56, SchoolC = 45 }); result.Add(new ClassScore() { ClassName = "英語", SchoolA = 63, SchoolB = 58, SchoolC = 64 }); result.Add(new ClassScore() { ClassName = "理学", SchoolA = 59, SchoolB = 54, SchoolC = 65 });

return result;}

public class ClassScore{ public string ClassName { get; set; } public double SchoolA { get; set; } public double SchoolB { get; set; } public double SchoolC { get; set; }

FlexChart for WinForms  

48 Copyright © GrapeCity, Inc. All rights reserved.         

Page 50: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

}

public class Y_AxisBinding{ public double d { get; set; } public string str { get; set; }

// public int d { get; set; }

}

縦棒縦棒

縦棒グラフは、横棒グラフと同様に、データ系列の経時的な変動を表現したり、異なる項目を比較します。1 つ以上の項目の

値を縦棒として Y 軸に表示し、項目やカテゴリを X 軸に配置します。

ABC という会社があり、同社の 2011 年から 2015 年までの 5 年間の業績報告書を生成するとします。1 年間の収入と支出

から年間利益を計算します。このデータを使用して、ある年の年間利益を前年の利益と比較して、前年度比の成長率を求めま

す。

比較する項目の数は 5 なので、この報告書の作成には縦棒グラフが適しています。

サンプルデータテーブルサンプルデータテーブル

年年 収入(収入(100,0000 ¥)) 消費(消費(100,0000 ¥)) 利益(利益(100,0000 ¥))

2011 30 20 10

2012 50 30 20

2013 40 30 10

2014 60 40 20

2015 65 35 30

縦棒グラフ縦棒グラフ

上のグラフは、ABC 社の 2011 年から 2015 年までの収入、支出、利益の変化を示します。

  FlexChart for WinForms

49 Copyright © GrapeCity, Inc. All rights reserved.         

Page 51: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

系列の数:3(収入、消費、利益)

ポイントごとの Y 値の数:1

次のコードは、このサンプルの実装です。

Visual Basic

' データ系列コレクションをクリアしますflexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2011, 30),New System.Drawing.Point(2012, 50),New System.Drawing.Point(2013, 40),New System.Drawing.Point(2014, 60),New System.Drawing.Point(2015, 65)}series1.Name = "収入"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2011, 15),New System.Drawing.Point(2012, 30),New System.Drawing.Point(2013, 30),New System.Drawing.Point(2014, 40),New System.Drawing.Point(2015, 35)}series2.Name = "消費"

series3.BindingX = "X"series3.Binding = "Y"series3.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2011, 10),New System.Drawing.Point(2012, 20),New System.Drawing.Point(2013, 10),New System.Drawing.Point(2014, 20),New System.Drawing.Point(2015, 30)}series3.Name = "利益"

' データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1)flexChart1.Series.Add(series2)flexChart1.Series.Add(series3)

' チャートタイプを縦棒グラフに設定しますflexChart1.ChartType = C1.Chart.ChartType.Column

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

FlexChart for WinForms  

50 Copyright © GrapeCity, Inc. All rights reserved.         

Page 52: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2011,30),new System.Drawing.Point(2012,50),new System.Drawing.Point(2013,40),new System.Drawing.Point(2014,60),new System.Drawing.Point(2015,65)};series1.Name = "収入";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2011,15),new System.Drawing.Point(2012,30),new System.Drawing.Point(2013,30),new System.Drawing.Point(2014,40),new System.Drawing.Point(2015,35)};series2.Name = "消費";

series3.BindingX = "X";series3.Binding = "Y";series3.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2011,10),new System.Drawing.Point(2012,20),new System.Drawing.Point(2013,10),new System.Drawing.Point(2014,20),new System.Drawing.Point(2015,30)};series3.Name = "利益";

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// チャートタイプをカラムチャートに設定しますflexChart1.ChartType = C1.Chart.ChartType.Column;

誤差範囲誤差範囲

誤差範囲系列を使用すると、データのばらつきや値の不確実性を示すことができます。誤差範囲を使用して、変数データの標

準偏差と誤差の範囲を表示できます。一般に、科学研究や科学実験の結果では、誤差範囲チャートを使用して、元の値から

のデータのばらつきを表現します。

FlexChart では、面、棒、折れ線、折れ線シンボル、散布図、スプライン、スプライン面、スプラインシンボルなどのさまざまな

チャートタイプで誤差範囲系列を使用できます。

FlexChart の誤差範囲系列には、次の機能があります。

誤差量誤差量:固定値、パーセンテージ、標準誤差、標準偏差などのさまざまな方法を使用して、すべてのデータポイントに誤

差範囲を設定します。さらに、必要に応じて、正確な誤差量を示すカスタム値を設定できます。これらの方法で誤差範

囲を表示するには、ErrorAmount 列挙の ErrorAmount プロパティを設定します。

方向方向:ErrorBarDirection 列挙の Direction プロパティを設定して、誤差範囲をプラス、マイナス、さらには両方向で

表示します。

終点スタイル終点スタイル:ErrorBarEndStyle 列挙の EndStyle プロパティを設定して、誤差範囲をキャップ付きまたはキャップな

しで表示します。

範囲スタイル範囲スタイル:ErrorBarStyle プロパティを使用して、誤差範囲の外観をカスタマイズします。

  FlexChart for WinForms

51 Copyright © GrapeCity, Inc. All rights reserved.         

Page 53: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次の図に、子供に観察されるさまざまなタイプの発作に対して、平均 MCA(Middle Cerebral Artery:中大脳動脈)速度データ

のプラスおよびマイナスの誤差量を示します。

次のコードは、子供のさまざまなタイプの発作における MCA 速度の平均パーセンテージ値を使用します。このコードは、

FlexChart で誤差範囲系列を実装する方法を示します。

Visual Basic

' データテーブルを作成します。Dim dt As New DataTable()

' データテーブルに列を追加します。dt.Columns.Add("Seizure Type", GetType(String))dt.Columns.Add("Mean MCA", GetType(Integer))

' データテーブルに行を追加します。dt.Rows.Add("一般化", 15)dt.Rows.Add("片側間代", 22)dt.Rows.Add("亜臨床的", 20)dt.Rows.Add("強直", 11)

' データ系列コレクションをクリアします。flexChart1.Series.Clear()

' 誤差範囲の系列を作成します。Dim errorBar As New C1.Win.Chart.ErrorBar()

FlexChart for WinForms  

52 Copyright © GrapeCity, Inc. All rights reserved.         

Page 54: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データ系列コレクションに系列を追加します。flexChart1.Series.Add(errorBar)

' チャートのデータソースを指定します。flexChart1.DataSource = dt

' X軸とY軸をバインドします。flexChart1.BindingX = "Seizure Type"errorBar.Binding = "Mean MCA"

' 系列の誤差量を指定します。errorBar.ErrorAmount = C1.Chart.ErrorAmount.Percentage

' 誤差の方向を指定します。errorBar.Direction = C1.Chart.ErrorBarDirection.Both

' 系列の誤差値を指定します。errorBar.ErrorValue = 0.3

' 誤差範囲の系列のスタイルerrorBar.EndStyle = C1.Chart.ErrorBarEndStyle.CaperrorBar.ErrorBarStyle.StrokeWidth = 2errorBar.ErrorBarStyle.StrokeColor = Color.Blue

C#

// データテーブルを作成します。DataTable dt = new DataTable();

// データテーブルに列を追加します。dt.Columns.Add("Seizure Type", typeof(string));dt.Columns.Add("Mean MCA", typeof(int));

// データテーブルに行を追加します。dt.Rows.Add("一般化", 15);dt.Rows.Add("片側間代", 22);dt.Rows.Add("亜臨床的", 20);dt.Rows.Add("強直", 11);

// データ系列コレクションをクリアします。flexChart1.Series.Clear();

// 誤差範囲の系列を作成します。C1.Win.Chart.ErrorBar errorBar = new C1.Win.Chart.ErrorBar();

// データ系列コレクションに系列を追加します。flexChart1.Series.Add(errorBar);

// チャートのデータソースを指定します。flexChart1.DataSource = dt;

// X軸とY軸をバインドします。flexChart1.BindingX = "Seizure Type";errorBar.Binding = "Mean MCA";

// 系列の誤差量を指定します。errorBar.ErrorAmount = C1.Chart.ErrorAmount.Percentage;

// 誤差の方向を指定します。errorBar.Direction = C1.Chart.ErrorBarDirection.Both;

// 系列の誤差値を指定します。errorBar.ErrorValue = .3;

  FlexChart for WinForms

53 Copyright © GrapeCity, Inc. All rights reserved.         

Page 55: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// 誤差範囲の系列のスタイルerrorBar.EndStyle = C1.Chart.ErrorBarEndStyle.Cap;errorBar.ErrorBarStyle.StrokeWidth = 2;errorBar.ErrorBarStyle.StrokeColor = Color.Blue;

株価(財務)株価(財務)

株価チャート(財務チャート)は市場価格や株価の変動を表現するために使用されますが、科学的データを表現するためにも

使用できます。

FlexChart コントロールは、Candle Chart と HighLowOpenClose Chart という 2 つのタイプの株価チャートをサポートしま

す。

以下は、株価(財務)チャートのタイプです。

ローソク足チャート

HighLowOpenClose チャート

ローソク足ローソク足

ローソク足チャートは、経時的な値の範囲を表すために横棒グラフと折れ線グラフを組み合わせて使用します。ローソクと呼ば

れるビジュアル要素で構成され、ローソクは胴体、上ヒゲ、下ヒゲの 3 つの要素から成ります。

胴体は始値と終値を表現し、上ヒゲと下ヒゲはそれぞれ高値と安値を表現します。

白抜きの胴体は、株価が上昇したことを示します(終値が始値より高い)。

黒塗りの胴体は、株価が下降したことを示します(始値が終値より高い)。

ある週の 5 連続日の株価を分析する株式市場シナリオを考えます。分析は、将来の株価を予想するために行われます。この

分析に基づいて、株価の一般的な性質も示唆できます。

ローソク足チャートは株価の概要を表現するために適しています。

サンプルデータテーブルサンプルデータテーブル

曜日曜日 株価始値株価始値 株価高値株価高値 株価安値株価安値 株価終値株価終値

月曜 37 47 22 28

火曜 52 63 30 38

水曜 75 77 50 55

木曜 65 77 50 76

金曜 26 67 22 55

ローソク足チャートローソク足チャート

FlexChart for WinForms  

54 Copyright © GrapeCity, Inc. All rights reserved.         

Page 56: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

上のチャートは、ある週の 5 連続日の株価の概要を示します。

系列の数:1(株価)

ポイントごとの Y 値の数:4

次のコードは、このサンプルの実装を示します。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Stock Value Summary")

' データテーブルに列を追加しますdt.Columns.Add("Stock Day", GetType(String))dt.Columns.Add("Stock Open", GetType(Integer))dt.Columns.Add("Stock High", GetType(Integer))dt.Columns.Add("Stock Low", GetType(Integer))dt.Columns.Add("Stock Close", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add("月曜日", 37, 47, 22, 28)dt.Rows.Add("火曜日", 52, 63, 30, 38)dt.Rows.Add("水曜日", 75, 77, 50, 55)dt.Rows.Add("木曜日", 65, 77, 50, 76)dt.Rows.Add("金曜日", 26, 67, 22, 55)

' データ系列コレクションをクリアしますflexChart1.Series.Clear()

' データ系列を作成します Dim series1 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1)

' チャートのデータソースを指定しますflexChart1.DataSource = dt

' X軸およびY軸を結合します

  FlexChart for WinForms

55 Copyright © GrapeCity, Inc. All rights reserved.         

Page 57: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart1.BindingX = "Stock Day"series1.Binding = "Stock High,Stock Low,Stock Open,Stock Close"

' チャートタイプをローソク足に設定しますflexChart1.ChartType = C1.Chart.ChartType.Candlestick

C#

// データテーブルを作成しますDataTable dt = new DataTable("Stock Value Summary");

// データテーブルに列を追加しますdt.Columns.Add("Stock Day", typeof(string));dt.Columns.Add("Stock Open", typeof(int));dt.Columns.Add("Stock High", typeof(int));dt.Columns.Add("Stock Low", typeof(int));dt.Columns.Add("Stock Close", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("月曜日", 37, 47, 22, 28);dt.Rows.Add("火曜日", 52, 63, 30, 38);dt.Rows.Add("水曜日", 75, 77, 50, 55);dt.Rows.Add("木曜日", 65, 77, 50, 76);dt.Rows.Add("金曜日", 26, 67, 22, 55); // データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成します C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸およびY軸を結合しますflexChart1.BindingX = "Stock Day";series1.Binding = "Stock High,Stock Low,Stock Open,Stock Close";

// チャートタイプをローソク足に設定しますflexChart1.ChartType = C1.Chart.ChartType.Candlestick;

HighLowOpenCloseHighLowOpenClose チャートは一般に株価分析に使用されます。このチャートは 4 つの独立した値を組み合わせて、高値、

安値、始値、終値のデータ値を系列内のデータポイントごとに提供します。

1 週間の株価を分析する株式市場シナリオを考えます。この分析では、上昇/下落を簡単に解釈できるように株価の概要を示

す必要があります。

この場合は HighLowOpenClose チャートを利用できます。

サンプルデータテーブルサンプルデータテーブル

曜日曜日 高値高値 安値安値 始値始値 終値終値

月 450 190 350 380

火 470 200 300 390

FlexChart for WinForms  

56 Copyright © GrapeCity, Inc. All rights reserved.         

Page 58: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

水 420 160 290 350

木 440 220 330 400

金 500 210 350 470

土 390 250 310 360

HighLowOpenClose チャートチャート

上のチャートは、ある週の株式価値の概要を示します。

系列の数:1(株式価)

ポイントごとの Y 値の数:4

次のコードは、このシナリオの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("株式価値の概要")

' データテーブルに列を追加しますdt.Columns.Add("Day", GetType(String))dt.Columns.Add("High", GetType(Integer))dt.Columns.Add("Low", GetType(Integer))dt.Columns.Add("Open", GetType(Integer))dt.Columns.Add("Close", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add("月", 450, 190, 350, 380)dt.Rows.Add("火", 470, 200, 300, 390)dt.Rows.Add("水", 420, 160, 290, 350)dt.Rows.Add("木", 440, 220, 330, 400)dt.Rows.Add("金", 500, 210, 350, 470)dt.Rows.Add("土", 390, 250, 310, 360)

  FlexChart for WinForms

57 Copyright © GrapeCity, Inc. All rights reserved.         

Page 59: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成します Dim series1 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

' X軸およびY軸を結合しますFlexChart1.BindingX = "Day"series1.Binding = "High,Low,Open,Close"

' チャートタイプをローソク足に設定しますFlexChart1.ChartType = C1.Chart.ChartType.HighLowOpenClose

C#

// データテーブルを作成しますDataTable dt = new DataTable("株式価値の概要");

// データテーブルに列を追加しますdt.Columns.Add("Day", typeof(string));dt.Columns.Add("High", typeof(int));dt.Columns.Add("Low", typeof(int));dt.Columns.Add("Open", typeof(int));dt.Columns.Add("Close", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("月", 450, 190, 350, 380);dt.Rows.Add("火", 470, 200, 300, 390);dt.Rows.Add("水", 420, 160, 290, 350);dt.Rows.Add("木", 440, 220, 330, 400);dt.Rows.Add("金", 500, 210, 350, 470);dt.Rows.Add("土", 390, 250, 310, 360);

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成します C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

// add the data series to the data series coltionflexChart1.Series.Add(series1);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸およびY軸を結合しますflexChart1.BindingX = "Day";series1.Binding = "High,Low,Open,Close";

// チャートタイプをローソク足に設定しますflexChart1.ChartType = C1.Chart.ChartType.HighLowOpenClose;

フローティングバーフローティングバー

FlexChart for WinForms  

58 Copyright © GrapeCity, Inc. All rights reserved.         

Page 60: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Floating bar chart provides an interesting way to represent data in charts. In this type of chart, a single or multiplebars apparently floats between a minimum and maximum value instead of being connected to the axis. It displaysinformation as a range of data by plotting two Y-values(low and high) per data point. The Y-axis shows the values, andthe X-axis shows the category they belong to. Floating bars can be useful to show highs and lows in a data set, suchas daily high and low temperatures, stock prices, blood pressure readings, etc.

In FlexChart, Floating bar chart can be implemented using the Series class. To begin with, create a new Series objectand specify its properties. Then, use the SymbolRendering event provided by the Series class to plot the data pointson the chart.

To implement Floating bar chart using the FlexChart control, see FloatingBarChart sample. The samples are availablein the default installation folder - Documents\ComponentOne Samples\WinForms\C1FlexChart

ファンネルファンネル

ファンネルグラフを使用すると、1 次元プロセスの連続的な段階を表現できます。たとえば、販売見込み客、有望見込み客、売

買交渉、成約などの売買プロセスの段階を通して見込み客を追跡するとします。

このプロセスの各段階で、全体に対する割合(パーセンテージ)を表します。そのため、チャートは、最初に最大の段階があり、

段階が進むごとに小さくなる漏斗の形状になります。

ファンネルグラフは、どの段階にどの程度の割合で値が減少しているかが顕著にわかる場所として、プロセス内に潜在的な問

題がある領域を特定します。

FlexChart には、次の 2 つの形式のファンネルグラフが用意されています。

台形グラフ:台形グラフ:平行な 2 辺を含みます。

積層横棒グラフ積層横棒グラフ:水平の棒の形式で、関連する値を互いの値の上に配置します。

  FlexChart for WinForms

59 Copyright © GrapeCity, Inc. All rights reserved.         

Page 61: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次の図は、受注処理評価プロセスの 7 つの段階の注文数を示す台形グラフと積層横棒グラフを示します。

台形グラ台形グラ

フフ

積層横棒積層横棒

グラフグラフ

FlexChart の ChartType プロパティを ChartType 列挙の Funnel に設定して、ファンネルグラフを使用しま

す。FunnelType プロパティを FunnelChartType 列挙の Default または Rectangle に設定して、ファンネルグラフのタイプを

FlexChart for WinForms  

60 Copyright © GrapeCity, Inc. All rights reserved.         

Page 62: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

台形グラフと積層横棒グラフのいずれかに指定します。

さらに、台形グラフに設定されている場合は、FunnelNeckWidth および FunnelNeckHeight プロパティを設定して、ファン

ネルグラフのネックのサイズを変更します。これらのプロパティは、FlexChart クラスの Options プロパティからアクセスできる

ChartOptions クラスにあります。

次のコードは、受注処理プロセスの 7 つの段階の受注量の値のデータを手動で作成します。このスニペットは、チャートタイプ

を Funnel に設定し、ファンネルのネックのサイズを指定し、チャートのヘッダー、凡例、データラベルを設定します。

Visual Basic

' 系列コレクションをクリアします。FlexChart1.Series.Clear()

' データを作成します。Dim data = New Object() {New With { .Name = "受け取り済み", .Value = 99000}, New With { .Name = "処理済み", .Value = 85000}, New With { .Name = "検定済み", .Value = 60000}, New With { .Name = "解放済み", .Value = 50000}, New With { .Name = "発送済み", .Value = 45000}, New With { .Name = "完了済み", .Value = 30000}, New With { .Name = "配達済み", .Value = 25000}}

' 系列のインスタンスを作成します。Dim series1 As New C1.Win.Chart.Series()

' 系列コレクションにインスタンスを追加します。FlexChart1.Series.Add(series1)

' YのBindingを設定します。series1.Binding = "Value"

' XのBindingを設定し、グラフにデータを追加します。FlexChart1.BindingX = "Name"FlexChart1.DataSource = data

' チャートタイプをファンネルとして設定します。FlexChart1.ChartType = ChartType.Funnel

' ファンネルチャートタイプをデフォルト(台形チャート)に設定します。FlexChart1.Options.FunnelType = FunnelChartType.[Default]

' ファンネルの首の高さを設定します。FlexChart1.Options.FunnelNeckHeight = 0.05

  FlexChart for WinForms

61 Copyright © GrapeCity, Inc. All rights reserved.         

Page 63: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' ファンネルの首の幅を設定します。FlexChart1.Options.FunnelNeckWidth = 0.2

C#

// 系列コレクションをクリアします。flexChart1.Series.Clear();

// データを作成します。var data = new[]{ new { Name = "受け取り済み", Value = 99000 }, new { Name = "処理済み", Value = 85000 }, new { Name = "検定済み", Value = 60000 }, new { Name = "解放済み", Value = 50000 }, new { Name = "発送済み", Value = 45000 }, new { Name = "完了済み", Value = 30000 }, new { Name = "配達済み", Value = 25000 }};

// 系列のインスタンスを作成します。C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();

// 系列コレクションにインスタンスを追加します。flexChart1.Series.Add(series1);

// YのBindingを設定します。series1.Binding = "Value";

// XのBindingを設定し、グラフにデータを追加します。flexChart1.BindingX = "Name";flexChart1.DataSource = data;

// チャートタイプをファンネルとして設定します。flexChart1.ChartType = ChartType.Funnel;

// ファンネルチャートタイプをデフォルト(台形チャート)に設定します。flexChart1.Options.FunnelType = FunnelChartType.Default;

// ファンネルの首の高さを設定します。flexChart1.Options.FunnelNeckHeight = 0.05;

// ファンネルの首の幅を設定します。flexChart1.Options.FunnelNeckWidth = 0.2;

ガントチャートガントチャート

Gantt chart is a type of chart which is commonly used for planning and scheduling projects. It provides useful ways ofshowing activities that are displayed against time. The chart has a list of activities plotted on Y-axis while X-axis plotsan appropriate time scale. Activities are represented using bars where position and length of the bars indicate thestart time and duration of the activities respectively.

As primary purpose of a Gantt chart is planning and scheduling, it can be used for a range of projects and in variousindustries, such as construction, engineering, manufacturing, infrastructure, IT and more.

In FlexChart, Gantt chart can be implemented using the Series class. To begin with, create a new Series object andspecify its properties. Then, use the SymbolRendering event provided by the Series class to plot activity bars on thechart and the LabelRendering event provided by the FlexChart class to display the labels.

FlexChart for WinForms  

62 Copyright © GrapeCity, Inc. All rights reserved.         

Page 64: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

To implement Gantt chart using the FlexChart control, see FloatinBarChart sample. The samples are available in thedefault installation folder - Documents\ComponentOne Samples\WinForms\C1FlexChart

ヒートマップヒートマップ

A heat map is a graphical representation of tabular data values through color coding and shading. It uses the twodimensional data where each value is mapped through a specified color palette. Heat map helps in identifyingpatterns, areas of concentration, and data variance. You can use the heat map chart to plot data like event schedule,temperature records, weekly traffic intensity, etc.

A heat map chart can showcase different visual representations depending upon the type of data. It can therefore becategorized into two types.

1. Category based heat map2. Value based heat map

Category based heat map

When you want to plot the data against intervals or specific numeric ranges, you can create a category based heatmap. To implement category based heat map chart, you need to use the DiscreteColorScale class. Itprovides Intervals property that allows you to get or set the collection of intervals. Set the Min, Max, Color,and Name properties for each interval. So, the data points belonging to a particular interval are represented by thesame color. The list of user-defined intervals is shown on the chart legend.

  FlexChart for WinForms

63 Copyright © GrapeCity, Inc. All rights reserved.         

Page 65: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

For example, if you use heat map chart to show the weekly traffic intensity of a city, you can use theDiscreteColorScale class and add intervals such as very low, low, normal, and set its corresponding min, max, and colorproperty.

The following image shows a category based heat map.

Use the following code snippet to create a category based heat map.

C#

public partial class Loading : UserControl { public Loading() { InitializeComponent(); } private void Loading_Load(object sender, EventArgs e) { var chart = new FlexChart(); chart.Legend.Position = Position.Bottom; chart.Dock = DockStyle.Fill; chart.ChartType = ChartType.Scatter; chart.AxisX.MajorGrid = false; chart.AxisX.MinorGrid = true; chart.AxisX.MajorTickMarks = TickMark.None; chart.AxisX.AxisLine = false; chart.AxisX.MinorGridStyle.StrokeColor = Color.LightGray; chart.AxisY.MajorGrid = false; chart.AxisY.MinorGrid = true; chart.AxisY.MinorGridStyle.StrokeColor = Color.LightGray; chart.Header.Content = "Weekly traffic intensity"; chart.Header.Style.Font = new Font("Seqoe UI", 16);

chart.ToolTip.Content = "{item:0.0}%";

var scale = new DiscreteColorScale() { Intervals = new List<DiscreteColorScale.Interval>() }; scale.Intervals.Add(new DiscreteColorScale.Interval(0, 10,

FlexChart for WinForms  

64 Copyright © GrapeCity, Inc. All rights reserved.         

Page 66: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Color.FromArgb(unchecked((int)0xFF0571B0)), "Very Low")); scale.Intervals.Add(new DiscreteColorScale.Interval(10, 25, Color.FromArgb(unchecked((int)0xFF92C5DE)), "Low")); scale.Intervals.Add(new DiscreteColorScale.Interval(25, 75, Color.FromArgb(unchecked((int)0xFFF7F7F7)), "Normal")); scale.Intervals.Add(new DiscreteColorScale.Interval(75, 90, Color.FromArgb(unchecked((int)0xFFF4A582)), "High")); scale.Intervals.Add(new DiscreteColorScale.Interval(90, 100, Color.FromArgb(unchecked((int)0xFFCA0020)), "Critical"));

// ランダムなデータを生成します

var rnd = new Random(); var data = new double[24, 7]; for (var j = 0; j < 7; j++) for (var i = 0; i < 24; i++) data[i, j] = 10 * Math.Exp(-(i - 12) * (i - 12) / (2 * 4.0 * 4.0)) / Math.Sqrt(2 * Math.PI * 4.0 * 4.0) * ((j == 5 || j == 6) ? 50 : 100) * rnd.NextDouble();

var hmap = new Heatmap(); hmap.DataSource = data; hmap.ColorScale = scale; chart.Series.Add(hmap);

var times = new string[24]; for (var i = 0; i < 24; i++) times[i] = new DateTime(2000, 1, 1, i, 0, 0).ToShortTimeString(); chart.AxisX.DataSource = times; chart.AxisX.LabelAngle = 45; chart.AxisY.DataSource = new string[] { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" }; chart.AxisY.Reversed = true; Controls.Add(chart); } }

Value based heat map

When you want to plot the raw data values without dividing them into intervals, you can create a value based heatmap. To implement the value-based heat map, you need to use the GradientColorScale class. By default, a heat mapis rendered with the chart legend. Each legend entry corresponds to a numeric value between the Min and Maxvalues. The interval used to generate the numeric values for the legend entries is calculated by using the formula(|Min| + |Max|)/(n-1) where n refers to the number of colors specified in the Colors property.

For example, a simple custom palette containing red, white and blue color maps the values from -30 to 30 to shadesof red, white, blue, where -30 is mapped to red and 30 to blue.

The following image shows a value based heat map.

  FlexChart for WinForms

65 Copyright © GrapeCity, Inc. All rights reserved.         

Page 67: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Use the following code snippet to create a value based heat map.

C#

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var chart = new FlexChart(); chart.Dock = DockStyle.Fill; chart.ChartType = C1.Chart.ChartType.Funnel; chart.AxisY.MajorGrid = false; chart.AxisX.AxisLine = false; chart.AxisX.MajorTickMarks = C1.Chart.TickMark.None; chart.Header.Content = "Average temperature by month"; chart.Header.Style.Font = new Font("Seqoe UI", 16); chart.Rotated = true; chart.PlotStyle.StrokeColor = Color.LightGray; chart.PlotStyle.StrokeWidth = 1;

var scale = new GradientColorScale(); scale.Colors = new List<Color> { Color.Blue, Color.White, Color.Red }; scale.Min = -30; scale.Max = 30;

var hmap = new Heatmap(); hmap.DataSource = new double[,] {

FlexChart for WinForms  

66 Copyright © GrapeCity, Inc. All rights reserved.         

Page 68: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

{ 3.0, 3.1, 5.7, 8.2, 12.5, 15.0, 17.1, 17.1, 14.3, 10.6, 6.6, 4.3 }, { -9.3, -7.7, -2.2, 5.8, 13.1, 16.6, 18.2, 16.4, 11.0, 5.1, -1.2, -6.1}, { -15.1, -12.5, -5.2, 3.1, 10.1, 15.5, 18.3, 15.0, 9.4, 1.4, -5.6, -11.4}, }; hmap.ColorScale = scale; hmap.DataLabel = new DataLabel(); hmap.DataLabel.Position = C1.Chart.LabelPosition.Center; hmap.DataLabel.Content = "{item}";

chart.Series.Add(hmap); chart.AxisX.DataSource = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; chart.AxisY.DataSource = new string[] { "Amsterdam", "Moscow", "Perm" }; this.Controls.Add(chart); } }

The default chart legend can be replaced with a gradient chart legend by using the ColorAxis class. Gradient chartlegend is a small bar of integrated colors obtained from the Colors definitions. Each color is for a specific numericrange and it integrates with the next color, creating a gradient legend. Every point on the gradient legend representsa distinctive color and value. Therefore, all the dissimilar values in the chart appear in distinctive colors as per theposition on the gradient legend.

To implement heat map with a gradient legend, you need to provide an instance of ColorAxis class to the Axisproperty provided by the GradientColorScale class. Moreover, you also need to specify the Min, Max and Colorsproperty of GradientColorScale class to set up a gradient legend.

The following image shows a value based heat map with gradient legends.

Use the following code snippet to create a value based heat map with gradient legends.

C#

public partial class Form1 : Form { public Form1() {

  FlexChart for WinForms

67 Copyright © GrapeCity, Inc. All rights reserved.         

Page 69: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var chart = new FlexChart(); chart.Dock = DockStyle.Fill; chart.ChartType = C1.Chart.ChartType.Scatter; chart.AxisY.MajorGrid = false; chart.AxisX.AxisLine = false; chart.AxisX.MajorTickMarks = C1.Chart.TickMark.None; chart.Header.Content = "Average temperature by month"; chart.Header.Style.Font = new Font("Seqoe UI", 16); chart.Rotated = true;

chart.PlotStyle.StrokeColor = Color.LightGray; chart.PlotStyle.StrokeWidth = 1;

var scale = new GradientColorScale(); scale.Colors = new List<Color> { Color.Blue, Color.White, Color.Red }; scale.Axis = new C1.Win.Chart.Extended.ColorAxis() { Position = Position.Right, Title = "temprature, celcius" }; scale.Min = -30; scale.Max = 30;

var hmap = new Heatmap(); hmap.DataSource = new double[,] { { 3.0, 3.1, 5.7, 8.2, 12.5, 15.0, 17.1, 17.1, 14.3, 10.6, 6.6, 4.3 }, { -9.3, -7.7, -2.2, 5.8, 13.1, 16.6, 18.2, 16.4, 11.0, 5.1, -1.2, -6.1}, { -15.1, -12.5, -5.2, 3.1, 10.1, 15.5, 18.3, 15.0, 9.4, 1.4, -5.6, -11.4}, }; hmap.ColorScale = scale; hmap.DataLabel = new DataLabel(); hmap.DataLabel.Position = C1.Chart.LabelPosition.Center; hmap.DataLabel.Content = "{item}"; chart.Series.Add(hmap);

chart.AxisX.DataSource = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; chart.AxisY.DataSource = new string[] { "Amsterdam", "Moscow", "Perm" }; this.Controls.Add(chart); } }

ヒストグラムヒストグラム

ヒストグラムは、定義されているクラスの間隔(ビン)に対するデータの度数分布をプロットします。これらのビンは、生データ値を重複のない連続した間隔に分割することで

作成されます。特定のビンに入る値の数に基づき、連続的な X 軸に沿った長方形の柱として度数がプロットされます。

The following images show a histogram and a cumulative histogram created using FlexChart.

FlexChart for WinForms  

68 Copyright © GrapeCity, Inc. All rights reserved.         

Page 70: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Histogram Cumulative Histogram

Once you provide relevant data, FlexChart automatically calculates the intervals in which your data is grouped. However, if required, you can also specify thewidth of these intervals by setting the BinWidth property. To create a histogram, you need to add the Histogram series and set the ChartType property toHistogram. You can also create a cumulative histogram by setting the CumulativeMode property to true.

C#

C1.Win.Chart.Histogram histogramSeries;public Form1(){ InitializeComponent(); SetupChart();}void SetupChart(){ flexChart1.Dock = DockStyle.Fill; flexChart1.Visible = true; flexChart1.BackColor = Color.White;

flexChart1.BeginUpdate(); flexChart1.Series.Clear(); flexChart1.ChartType = ChartType.Histogram; histogramSeries = new C1.Win.Chart.Histogram(); histogramSeries.Name = "Frequency"; flexChart1.Series.Add(histogramSeries);

FlexChart generates frequency distribution for the data and plots the same in histogram, upon providing relevant data as shown in the following code snippet.

C#

flexChart1.DataSource = original; flexChart1.Binding = "Y"; flexChart1.BindingX = "X"; flexChart1.EndUpdate(); flexChart1.AxisX.Format = "0.00"; }

FlexChart also provides you various options to create following variations of Histogram:

Frequency PolygonGaussian Curve

Frequency PolygonA frequency polygon shows a frequency distribution representing the overall pattern in the data. It is a closed two-dimensional figure of straight line segments -created by joining the mid points of the top of the bars of a histogram.

Use the following steps to create a frequency polygon using histogram chart.

1. Set the HistogramAppearance property to FrequencyPolygon. This property accepts value from the HistogramAppearance enumeration.2. Set the style for frequency polygon using the FrequencyPolygonStyle property.

  FlexChart for WinForms

69 Copyright © GrapeCity, Inc. All rights reserved.         

Page 71: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Moreover, you can also create a cumulative frequency polygon by setting the CumulativeMode property to true.

The following images show a frequency polygon and a cumulative frequency polygon created using FlexChart.

Frequency Polygon Cumulative Frequency Polygon

Use the following code snippet to create a frequency polygon.

histogramSeries.HistogramAppearance = HistogramAppearance.FrequencyPolygon;histogramSeries.FrequencyPolygonStyle = new ChartStyle(){Stroke = new SolidBrush(Color.Red), StrokeWidth = 2};// 累積頻度ポリゴンを作成する

histogramSeries.CumulativeMode = true;

Gaussian CurveGaussian curve is a bell shaped curve, also known as normal curve, which represents the probability distribution of a continuous random variable. It represents aunimodal distribution as it only has one peak. Moreover, it shows a symmetric distribution as fifty percent of the data set lies on the left side of the mean and fiftypercent of the data lies on the right side of the mean.

Use the following steps to create a Gaussian curve using histogram chart.

1. Set the HistogramAppearance property to Histogram. This property accepts value from the HistogramAppearance enumeration.2. Set the NormalCurve.Visible property to true to create a Gaussian curve.3. Set the style for Gaussian curve using the NormalCurve.LineStyle property.

Following image illustrates a Gaussian curve created using FlexChart, which depicts probability distribution of scores obtained by students of a university in halfyearly examinations.

FlexChart for WinForms  

70 Copyright © GrapeCity, Inc. All rights reserved.         

Page 72: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Use the following code snippet to create a Gaussian curve.

Example Title

histogramSeries.HistogramAppearance = HistogramAppearance.Histogram;histogramSeries.NormalCurve.Visible = true;histogramSeries.NormalCurve.LineStyle = new ChartStyle()Stroke = new SolidBrush(Color.Green), StrokeWidth = 2 };

先頭に戻る先頭に戻る

折れ線折れ線

折れ線グラフは、系列内の異なるデータポイントを直線で接続することで、一定期間の傾向を表示します。入力を X 軸に沿っ

て等間隔に並ぶカテゴリ情報として取り扱います。

XYZ という学校があるとします。この学校の 2011 年当初の生徒数は 3000 人です。学校の経営者は、2011 年から 2015 年までの生徒数の最大値、最小値、平均値を調べることにしました。さらに、退学者数が一番多かった時期を把握することも必

要です。

折れ線グラフを使用して、データを可視化してみます。

サンプルデータテーブルサンプルデータテーブル

年年 学校に入った学校に入った 学校を退学した学校を退学した

2011 350 250

2012 300 450

2013 450 400

2014 500 350

2015 450 450

折れ線グラフ折れ線グラフ

  FlexChart for WinForms

71 Copyright © GrapeCity, Inc. All rights reserved.         

Page 73: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

上のグラフは、2011 年から 2015 年までの入学者数と退学者数を示します。

系列の数:2(学校に入ったと学校を退学した)

ポイントごとの Y 値の数:1

次に、この例を実装するコードを示します。

Visual Basic

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2011, 350),New System.Drawing.Point(2012, 300),New System.Drawing.Point(2013, 450),New System.Drawing.Point(2014, 500),New System.Drawing.Point(2015, 450)}series1.Name = "学校に入った"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2011, 250),New System.Drawing.Point(2012, 450),New System.Drawing.Point(2013, 400),New System.Drawing.Point(2014, 350),New System.Drawing.Point(2015, 450)}series2.Name = "学校を退学した"

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

FlexChart for WinForms  

72 Copyright © GrapeCity, Inc. All rights reserved.         

Page 74: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' チャートタイプを折れ線グラフに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Line

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();

// データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2011,350),new System.Drawing.Point(2012,300),new System.Drawing.Point(2013,450),new System.Drawing.Point(2014,500),new System.Drawing.Point(2015,450)};series1.Name = "学校に入った";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2011,250),new System.Drawing.Point(2012,450),new System.Drawing.Point(2013,400),new System.Drawing.Point(2014,350),new System.Drawing.Point(2015,450)};series2.Name = "学校を退学した";

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);

// チャートタイプを折れ線に設定しますflexChart1.ChartType = C1.Chart.ChartType.Line;

折れ線シンボル折れ線シンボル

折れ線シンボル グラフは、折れ線グラフと散布図グラフを組み合わせたグラフです。等間隔に並ぶデータの傾向を表示し、同

じイベントに関連付けられた 2 つの変数の関係を視覚化します。シンボルを使用してデータポイントをプロットし、データポイン

ト間を直線で接続します。

このシナリオでは、2 つの銀行 P と Q が 2009 年から 2015 年までの期間に投資家からの出資金に対して適用した固定年利

を示すことにします。これらの銀行が示す金利は、国の経済動向に応じて毎年異なります。

ここでは、これらの銀行が適用する年利(%)を可視化する必要があります。それには、折れ線シンボルグラフを使用します。

サンプルデータテーブルサンプルデータテーブル

銀行銀行 2009 2010 2011 2012 2013 2014 2015

P 7 9 8 10 8 7 6

Q 6 8 10 8 9 8 4

  FlexChart for WinForms

73 Copyright © GrapeCity, Inc. All rights reserved.         

Page 75: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

折れ線シンボルグラフ折れ線シンボルグラフ

上のグラフは、2 つの銀行が 2009 年から 2015 年までに適用した年利を示します。

系列の数:2(P と Q)

ポイントごとの Y 値の数:1

次のコードは、このサンプルの実装です。

Visual Basic

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2009, 7),New System.Drawing.Point(2010, 9),New System.Drawing.Point(2011, 8),New System.Drawing.Point(2012, 10),New System.Drawing.Point(2013, 8),New System.Drawing.Point(2014, 7),New System.Drawing.Point(2015, 6)}series1.Name = "P銀行"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(2009, 6),New System.Drawing.Point(2010, 8),New System.Drawing.Point(2011, 10),New System.Drawing.Point(2012, 8),New System.Drawing.Point(2013, 9),New System.Drawing.Point(2014, 8),New System.Drawing.Point(2015, 4)}

FlexChart for WinForms  

74 Copyright © GrapeCity, Inc. All rights reserved.         

Page 76: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

series2.Name = "Q銀行"

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

' チャートタイプを折れ線シンボルに設定しますFlexChart1.ChartType = C1.Chart.ChartType.LineSymbols

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();

// データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2009,7),new System.Drawing.Point(2010,9),new System.Drawing.Point(2011,8),new System.Drawing.Point(2012,10),new System.Drawing.Point(2013,8),new System.Drawing.Point(2014,7),new System.Drawing.Point(2015,6)};series1.Name = "P銀行";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(2009,6),new System.Drawing.Point(2010,8),new System.Drawing.Point(2011,10),new System.Drawing.Point(2012,8),new System.Drawing.Point(2013,9),new System.Drawing.Point(2014,8),new System.Drawing.Point(2015,4)};series2.Name = "Q銀行";

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);

// チャートタイプを折れ線に設定しますsymbolsflexChart1.ChartType = C1.Chart.ChartType.LineSymbols;

複合複合

FlexChart では、主に次の 2 つの利点がある複合チャートを作成できます。

チャートタイプの組み合わせ:チャートタイプの組み合わせ:面と棒、棒と折れ線、棒と散布図など、複数のチャートを組み合わせて 1 つのチャートにすること

ができます。さまざまなチャートタイプを使用して 1 つのチャートに複数のメトリックをプロットし、エンドユーザーが簡単にデー

タを解釈できるようにします。FlexChart で系列ごとにチャートタイプを指定して、複数のチャートタイプを組み合わせます。系列

のチャートタイプを指定するには、SeriesBase クラスの ChartType プロパティを設定します。このプロパティを設定すると、

チャートで設定されている ChartType プロパティがオーバーライドされます。

複数のデータセットのプロット:複数のデータセットのプロット:系列のデータソースを指定して、複数のデータセットのデータを 1 つのチャートにプロットしま

す。プロットするデータが複数の場所にある場合に便利です。系列のデータソースを指定するには、Series クラスの

  FlexChart for WinForms

75 Copyright © GrapeCity, Inc. All rights reserved.         

Page 77: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

DataSource プロパティを設定します。このプロパティを設定すると、チャートで設定されている DataSource プロパティがオー

バーライドされます。

次の図に、棒グラフと折れ線グラフ(シンボル付き)のチャートタイプを組み合わせた複合チャートを示します。このチャートでは、シリン

ダー容積、エンジン排気量、トランスミッション速度の 3 つのパラメータに基づいて、5 つの自動車を比較します。

次のコードは、「クイックスタート」サンプルで使用されるデータソースを使用して、2 つの系列 Cyl および Liter にデータを提供します。

また、別のデータソースを使用して、Transmission Speed 系列にデータを提供します。

Visual Basic

' データテーブルを作成します。Dim dt1 As New DataTable()

' データソースからデータを取得します。Dim conPath As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & vbCr & vbLf & "Data Source=C:\\Users\\GPCTAdmin\\Documents\\ComponentOne Samples\\Common\\C1NWind.mdb"Dim conQuery As String = "SELECT * FROM Cars WHERE Brand = 'BMW' OR Brand = 'Acura'"

' データアダプタを作成します。Dim da As New OleDbDataAdapter(conQuery, conPath)

' データテーブルを入力します(グラフのデータソース)。da.Fill(dt1)

' 別のデータテーブルを作成します(単一の系列のデータソース)。Dim dt As New DataTable()

' データテーブルに列を追加します。dt.Columns.Add("Cars", GetType(Integer))

FlexChart for WinForms  

76 Copyright © GrapeCity, Inc. All rights reserved.         

Page 78: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

dt.Columns.Add("TransmissionSpeed", GetType(Integer))

' データテーブルに行を追加します。dt.Rows.Add(1, 3)dt.Rows.Add(2, 6)dt.Rows.Add(3, 3)dt.Rows.Add(4, 2)dt.Rows.Add(5, 3)

' データ系列コレクションをクリアします。FlexChart1.Series.Clear()

' データ系列を作成します。Dim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' 系列コレクションにデータ系列を追加します。FlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' 系列の名前series1.Name = "Cyl"series2.Name = "Liter"series3.Name = "Transmission Speed"

' 全体チャートのデータソースを指定します。FlexChart1.DataSource = dt1

' 系列の別のデータソースを指定します。series3.DataSource = dt

' チャートのX軸をバインドします。FlexChart1.BindingX = "Model"

' それぞれのフィールドに系列をバインドします。series1.Binding = "Cyl"series2.Binding = "Liter"series3.Binding = "TransmissionSpeed"

' 全体チャートのチャートタイプを設定します。FlexChart1.ChartType = C1.Chart.ChartType.Column

' 系列に異なるチャートタイプを設定します。series3.ChartType = C1.Chart.ChartType.LineSymbols

C#

// データテーブルを作成します。DataTable dt1 = new DataTable();

// データソースからデータを取得します。string conPath = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\GPCTAdmin\Documents\ComponentOne Samples\Common\C1NWind.mdb";string conQuery = "SELECT * FROM Cars WHERE Brand = 'BMW' OR Brand = 'Acura'";

// データアダプタを作成します。OleDbDataAdapter da = new OleDbDataAdapter(conQuery, conPath);

// データテーブルを入力します(グラフのデータソース)。da.Fill(dt1);

// 別のデータテーブルを作成します(単一の系列のデータソース)。DataTable dt = new DataTable();

// データテーブルに列を追加します。

  FlexChart for WinForms

77 Copyright © GrapeCity, Inc. All rights reserved.         

Page 79: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

dt.Columns.Add("Cars", typeof(int));dt.Columns.Add("TransmissionSpeed", typeof(int));

// データテーブルに行を追加します。dt.Rows.Add(1, 3);dt.Rows.Add(2, 6);dt.Rows.Add(3, 3);dt.Rows.Add(4, 2);dt.Rows.Add(5, 3);

// データ系列コレクションをクリアします。flexChart1.Series.Clear();

// データ系列を作成します。C1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// 系列コレクションにデータ系列を追加します。flexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// 系列の名前series1.Name = "Cyl";series2.Name = "Liter";series3.Name = "Transmission Speed";

// 全体チャートのデータソースを指定します。flexChart1.DataSource = dt1;

// 系列の別のデータソースを指定します。series3.DataSource = dt;

// チャートのX軸をバインドします。flexChart1.BindingX = "Model";

// それぞれのフィールドに系列をバインドします。series1.Binding = "Cyl";series2.Binding = "Liter";series3.Binding = "TransmissionSpeed";

// 全体チャートのチャートタイプを設定します。flexChart1.ChartType = C1.Chart.ChartType.Column;

// 系列に異なるチャートタイプを設定します。series3.ChartType = C1.Chart.ChartType.LineSymbols;

パレート図パレート図

Pareto chart is a type of chart that contains both bar and a line chart. It is a vertical bar chart in which values areplotted in decreasing order of relative frequency from left to right. The categories or factors that represent the biggerbars on the left are more important than those on the right. The line chart plots the cumulative total percentage offrequencies that are represented by the bars.

Pareto chart is essentially used in scenarios where the data is broken into different categories, and when thedeveloper needs to highlight the most important factors from a given set of factors. For example, quality control,inventory control, and customer grievance handling are some areas where Pareto chart analysis can be frequentlyused.

In FlexChart, Pareto chart can be easily created by combining RangedHistogram chart with any of Line, Spline,LineSymbol, or SplineSymbol chart. First, plot the relative frequency on a RangedHistogram in descending order. Then,calculate the cumulative relative frequency in percentage using original data to create another series which is plottedon any of the Line, Spline, LineSymbol, or SplineSymbol chart. This forms Pareto line of the chart which helps in

FlexChart for WinForms  

78 Copyright © GrapeCity, Inc. All rights reserved.         

Page 80: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

identifying the added contribution of each category.

To implement Pareto chart using the FlexChart control, see FlexChartExplorer sample. The samples are available inthe default installation folder - Documents\ComponentOne Samples\WinForms\C1FlexChart.

RangedHistogramRangedHistogram は、新しい Excel 形式のヒストグラムで、範囲付き範囲付き X 軸に対する Y 軸の度数分布を視覚化するために役

立ちます。ヒストグラムチャートタイプと同様に、ビンは、生データ値を重複のない連続した間隔に分割することで作成されま

す。特定のビンに入る値の数に基づき、X 軸に沿った長方形の柱として度数がプロットされます。

RangedHistogram は、提供されたデータの度数分布を非カテゴリモードまたはカテゴリモードでプロットします。

非カテゴリモード非カテゴリモード

非カテゴリモードでは、元のデータポイントがいくつかの間隔または範囲に分類されます。これらの間隔が X 軸にプロットさ

れ、対応する範囲の度数分布が Y 軸に示されます。FlexChart は、データをグループ化する間隔を自動的に計算します。

ただし、この動作は、BinMode プロパティで HistogramBinning を指定することで制御できます。さら

に、BinWidth、NumberOfBins、UnderflowBin および OverflowBin の値を設定し、 ShowUnderflowBin とShowOverflowBin を指定できます。

次の図に、ある小売店の製品販売数の度数分布を非カテゴリモードで示します。

  FlexChart for WinForms

79 Copyright © GrapeCity, Inc. All rights reserved.         

Page 81: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

特定のデータの RangedHistogram を非カテゴリモードで作成するには、次のコードスニペットに示すよう

に、RangedHistogram 系列を追加し、ChartType プロパティを RangedHistogram に設定する必要があります。

C#

public partial class RHistogram : Form{ C1.Win.Chart.RangedHistogram histogramRSeries; public RHistogram() { InitializeComponent(); SetRangedChart(); }

void SetRangedChart() { flexChart2.Dock = DockStyle.Fill; flexChart2.Visible = true; flexChart2.BackColor = Color.White;

flexChart2.BeginUpdate(); flexChart2.Series.Clear(); flexChart2.ChartType = ChartType.RangedHistogram; histogramRSeries = new C1.Win.Chart.RangedHistogram(); histogramRSeries.Name = "度数"; flexChart2.Series.Add(histogramRSeries); flexChart2.DataSource = new[] { new { Name = "文房具", Value = 20 }, new { Name = "本", Value = 35 }, new { Name = "おもちゃやゲーム", Value = 40 }, new { Name = "文房具", Value = 55 }, new { Name = "本", Value = 80 },

FlexChart for WinForms  

80 Copyright © GrapeCity, Inc. All rights reserved.         

Page 82: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

new { Name = "おもちゃやゲーム", Value = 60 }, new { Name = "文房具", Value = 61 }, new { Name = "本", Value = 85 }, new { Name = "おもちゃやゲーム", Value = 80 }, new { Name = "文房具", Value = 64 }, new { Name = "本", Value = 80 }, new { Name = "おもちゃやゲーム", Value = 75 }, new { Name = "文房具", Value = 1222 }, new { Name = "本", Value = 133 }, new { Name = "おもちゃやゲーム", Value = 80 }, };

flexChart2.Binding = "Value"; histogramRSeries.BinMode = HistogramBinning.NumberOfBins; histogramRSeries.NumberOfBins = 5; histogramRSeries.OverflowBin = 89; histogramRSeries.UnderflowBin = 20; histogramRSeries.ShowOverflowBin = true; histogramRSeries.ShowUnderflowBin = true; flexChart2.EndUpdate(); } }

カテゴリモードカテゴリモード

カテゴリモードでは、度数データが元のデータに基づいて提供されるいくつかのカテゴリに排他的にグループ化され(X 軸にプ

ロット)、対応するカテゴリの累積的度数が Y 軸に描画されます。BindingX プロパティを設定すると、RangedHistogram 系列のカテゴリモードが有効になります。

このモードでは、RangedHistogram 系列の BinMode、BinWidth、NumberOfBins、OverflowBin、UnderflowBin の各プロパ

ティは無視されます。

次の図に、ある小売店の 3 つのカテゴリの製品(文房具、本、おもちゃとゲーム)の販売数の度数分布をカテゴリモードで示し

ます。

  FlexChart for WinForms

81 Copyright © GrapeCity, Inc. All rights reserved.         

Page 83: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

特定のデータの RangedHistogram をカテゴリモードで作成するには、次のコードスニペットに示すよう

に、RangedHistogram 系列を追加し、ChartType プロパティを RangedHistogram に設定し、BindingX プロパティを設

定する必要があります。

C#

public partial class RHistogram : Form{

C1.Win.Chart.RangedHistogram histogramRSeries; public RHistogram() { InitializeComponent(); SetRangedChart(); }

void SetRangedChart() { flexChart2.Dock = DockStyle.Fill; flexChart2.Visible = true; flexChart2.BackColor = Color.White;

flexChart2.BeginUpdate(); flexChart2.Series.Clear(); flexChart2.ChartType = ChartType.RangedHistogram;

histogramRSeries = new C1.Win.Chart.RangedHistogram(); histogramRSeries.Name = "度数"; flexChart2.Series.Add(histogramRSeries);

flexChart2.DataSource = new[] { new { Name = "文房具", Value = 20 }, new { Name = "本", Value = 35 }, new { Name = "おもちゃやゲーム", Value = 40 }, new { Name = "文房具", Value = 55 }, new { Name = "本", Value = 80 }, new { Name = "おもちゃやゲーム", Value = 60 }, new { Name = "文房具", Value = 61 }, new { Name = "本", Value = 85 }, new { Name = "おもちゃやゲーム", Value = 80 }, new { Name = "文房具", Value = 64 }, new { Name = "本", Value = 80 }, new { Name = "おもちゃやゲーム", Value = 75 }, new { Name = "文房具", Value = 1222 }, new { Name = "本", Value = 133 }, new { Name = "おもちゃやゲーム", Value = 80 }, };

flexChart2.Binding = "Value"; flexChart2.BindingX = "Name"; histogramRSeries.BinMode = HistogramBinning.NumberOfBins; histogramRSeries.NumberOfBins = 5; histogramRSeries.OverflowBin = 89; histogramRSeries.UnderflowBin = 20; histogramRSeries.ShowOverflowBin = true; histogramRSeries.ShowUnderflowBin = true; flexChart2.EndUpdate(); }

}

従来のヒストグラムとは異なり、RangedHistogram と同じ X 軸を使用して他のチャートタイプをプロットすることはできま

FlexChart for WinForms  

82 Copyright © GrapeCity, Inc. All rights reserved.         

Page 84: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

せん。

散布図散布図

散布図グラフは別名 XY グラフと呼ばれ、複数のデータ系列の項目間の関係を表します。簡単に言えば、X 値と Y 値を 2 つの軸にプロットしたものです。データポイントは接続されず、異なるシンボルを使用してカスタマイズできます。通常、このチャー

トタイプは科学的データを表現するために使用され、予測データや結果データに含まれる集中データのばらつきを強調できま

す。

衣類やアクセサリーを扱う ABC という倉庫があるとします。この倉庫の在庫管理部門と販売部門は、2013 年、2014 年、2015年の特定の売上高に対する利益と売上の関係を明らかにしようとしています。当然ながら、年末に売れ残りを廃棄しなくて済

むように、年初に仕入れる商品の数量に制限を設ける必要があります。

必要な関係を表すために、散布図グラフを使用します。

サンプルデータテーブルサンプルデータテーブル

2013

利益率利益率 % 売上高(十売上高(十 万円)万円)

43 10

44 20

50 30

35 40

60 50

2014

利益率利益率 % 売上高(十売上高(十 万円)万円)

50 10

33 20

61 30

45 40

64 50

2015

利益率利益率 % 売上高(十売上高(十 万円)万円)

52 10

40 20

55 30

41 40

67 50

散布図散布図

  FlexChart for WinForms

83 Copyright © GrapeCity, Inc. All rights reserved.         

Page 85: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

上のグラフは、3 年間の利益率と売上高の関係を示します。

系列の数:3(2013、2014、2015)ポイントごとの Y 値の数:1

次に、このシナリオを実装するコードを示します。

Visual Basic

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(10, 43),New System.Drawing.Point(20, 44),New System.Drawing.Point(30, 50),New System.Drawing.Point(40, 35),New System.Drawing.Point(50, 60)}series1.Name = "2013"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(10, 50),New System.Drawing.Point(20, 33),New System.Drawing.Point(30, 61),New System.Drawing.Point(40, 45),New System.Drawing.Point(50, 64)}series2.Name = "2014"

series3.BindingX = "X"series3.Binding = "Y"series3.DataSource = New System.Drawing.Point() {

FlexChart for WinForms  

84 Copyright © GrapeCity, Inc. All rights reserved.         

Page 86: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

New System.Drawing.Point(10, 52),New System.Drawing.Point(20, 40),New System.Drawing.Point(30, 55),New System.Drawing.Point(40, 41),New System.Drawing.Point(50, 67)}series3.Name = "2015"

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' チャートタイプを散布図に設定しますFlexChart1.ChartType = C1.Chart.ChartType.Scatter

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series(); // データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] {new System.Drawing.Point(10,43),new System.Drawing.Point(20,44),new System.Drawing.Point(30,50),new System.Drawing.Point(40,35),new System.Drawing.Point(50,60)};series1.Name = "2013";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] {new System.Drawing.Point(10,50),new System.Drawing.Point(20,33),new System.Drawing.Point(30,61),new System.Drawing.Point(40,45),new System.Drawing.Point(50,64)};series2.Name = "2014";

series3.BindingX = "X";series3.Binding = "Y";series3.DataSource = new System.Drawing.Point[] {new System.Drawing.Point(10,52),new System.Drawing.Point(20,40),new System.Drawing.Point(30,55),new System.Drawing.Point(40,41),new System.Drawing.Point(50,67)};series3.Name = "2015"; // データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3); // チャートタイプを散布図に設定しますflexChart1.ChartType = C1.Chart.ChartType.Scatter;

  FlexChart for WinForms

85 Copyright © GrapeCity, Inc. All rights reserved.         

Page 87: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

スプラインスプライン

スプライングラフは折れ線グラフと似ていますが、直線ではなくスプラインを使用してデータポイント間を接続する点が異なりま

す。このグラフは折れ線グラフの代わりに使用されますが、より具体的に言えば、曲線フィッティングを使用する必要がある

データの表現に使用されます。

あなたは ABC 社のセールスアナリストです。同社は、年次売上報告書を毎年発行しています。あなたは、セールスアナリスト

として、直近 2 年間の売上を比較した売上高比較報告書を作成するように依頼されました。報告書では、売上データに基づい

て 2 年間の売上高の増減傾向を示す必要があります。

スプラインチャートを使用して、必要な売上高比較報告書を作成します。

サンプルデータテーブルサンプルデータテーブル

月月 2014 年の売上高(年の売上高(1000 $)) 2015 年の売上高(年の売上高(1000 $))

1 月 8 23

2 月 11 24

3 月 12 22

4 月 15 22

5 月 17 24

6 月 18 27

7 月 19 26

8 月 20 27

9 月 22 24

10 月 22 26

11 月 23 27

12 月 20 25

スプライングラフスプライングラフ

FlexChart for WinForms  

86 Copyright © GrapeCity, Inc. All rights reserved.         

Page 88: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

上のグラフは、2014 年と 2015 年の ABC 社の売上高の比較です。

系列の数:2(2014、2015)ポイントごとの Y 値の数:1

次のコードは、このサンプルの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Sales - 2014 vs 2015")

' データテーブルに列を追加しますdt.Columns.Add("Month", GetType(String))dt.Columns.Add("Sales in 2014", GetType(Integer))dt.Columns.Add("Sales in 2015", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add("1月", 8, 23)dt.Rows.Add("2月", 11, 24)dt.Rows.Add("3月", 12, 22)dt.Rows.Add("4月", 15, 22)dt.Rows.Add("5月", 17, 24)dt.Rows.Add("6月", 18, 27)dt.Rows.Add("7月", 19, 26)dt.Rows.Add("8月", 20, 27)dt.Rows.Add("9月", 22, 24)dt.Rows.Add("10月", 22, 26)dt.Rows.Add("11月", 23, 27)dt.Rows.Add("12月", 20, 25)

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

' 系列の名前を指定しますseries1.Name = "2014"series2.Name = "2015"

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

' X軸およびY軸を結合しますFlexChart1.BindingX = "Month"series1.Binding = "Sales in 2014"series2.Binding = "Sales in 2015"

' チャートタイプをスプラインに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Spline

C#

// データテーブルを作成します

  FlexChart for WinForms

87 Copyright © GrapeCity, Inc. All rights reserved.         

Page 89: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

DataTable dt = new DataTable("Sales - 2014 vs 2015");

// データテーブルに列を追加しますdt.Columns.Add("Month", typeof(string));dt.Columns.Add("Sales in 2014", typeof(int));dt.Columns.Add("Sales in 2015", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("1月", 8, 23);dt.Rows.Add("2月", 11, 24);dt.Rows.Add("3月", 12, 22);dt.Rows.Add("4月", 15, 22);dt.Rows.Add("5月", 17, 24);dt.Rows.Add("6月", 18, 27);dt.Rows.Add("7月", 19, 26);dt.Rows.Add("8月", 20, 27);dt.Rows.Add("9月", 22, 24);dt.Rows.Add("10月", 22, 26);dt.Rows.Add("11月", 23, 27);dt.Rows.Add("12月", 20, 25);

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series(); // データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);

// 系列の名前を指定しますseries1.Name = "2014";series2.Name = "2015";

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸およびY軸を結合しますflexChart1.BindingX = "Month";series1.Binding = "Sales in 2014";series2.Binding = "Sales in 2015";

// チャートタイプをスプラインに設定しますflexChart1.ChartType = C1.Chart.ChartType.Spline;

スプライン面スプライン面

スプライン面グラフは、データポイントの接続方法が異なる以外は、面グラフと同じです。スプライン面グラフは、直線ではなく

スプラインを使用してデータポイント間を接続し、スプラインで囲まれた領域を塗りつぶします。

2014 年末に、ある国際ビジネス誌が、再販価格に基づいて同年の自動車ランキング報告書を発表しました。再販価格が高い

ほど、自動車のランキングが上がります。同誌は、2015 年末の報告書で、再販価格に基づく 2015 年の最優秀自動車を発表

しました。両方の報告書に共通して掲載された車がいくつかありました。

ここでは、このデータを利用して、2014 年と 2015 年の自動車の再販価格を比較します。

スプライン面グラフを使用してこれを行います。

サンプルデータテーブルサンプルデータテーブル

FlexChart for WinForms  

88 Copyright © GrapeCity, Inc. All rights reserved.         

Page 90: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

自動車自動車 2014 年の再販価格(年の再販価格(%)) 2015 年の再販価格(年の再販価格(%))

Toyota Tundra 55 52

GMC Canyon 47 49

Chevrolet Silverado 56 50

Ford F-150 69 68

Subaru Forester 67 65

Jeep Wrangler 88 91

スプライン面グラフスプライン面グラフ

上のグラフは、いくつかの自動車の 2014 年と 2015 年の再販価格を比較したものです。

系列の数:2(2014、2015)ポイントごとの Y 値の数:1

次のコードは、このサンプルの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Resale Value 2014 vs 2015")

' データテーブルに列を追加しますdt.Columns.Add("Automobile", GetType(String))dt.Columns.Add("Resale Value in 2014", GetType(Integer))dt.Columns.Add("Resale Value in 2015", GetType(Integer))

  FlexChart for WinForms

89 Copyright © GrapeCity, Inc. All rights reserved.         

Page 91: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データテーブルに行を追加しますdt.Rows.Add("Toyota Tundra", 55, 52)dt.Rows.Add("GMC Canyon", 47, 49)dt.Rows.Add("Chevrolet Silverado", 56, 50)dt.Rows.Add("Ford F-150", 69, 68)dt.Rows.Add("Subaru Forester", 67, 65)dt.Rows.Add("Jeep Wrangler", 88, 91)

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

' X軸を結合しますFlexChart1.BindingX = "Automobile"

' Y軸を結合しますseries1.Binding = "Resale Value in 2014"series2.Binding = "Resale Value in 2015"

' 系列の名前を指定しますseries1.Name = "2014"series2.Name = "2015"

' チャートタイプをスプライン面に設定しますFlexChart1.ChartType = C1.Chart.ChartType.SplineArea

C#

// データテーブルを作成しますDataTable dt = new DataTable("Resale Value 2014 vs 2015");

// データテーブルに列を追加しますdt.Columns.Add("Automobile", typeof(string));dt.Columns.Add("Resale Value in 2014", typeof(int));dt.Columns.Add("Resale Value in 2015", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("Toyota Tundra", 55, 52);dt.Rows.Add("GMC Canyon", 47, 49);dt.Rows.Add("Chevrolet Silverado", 56, 50);dt.Rows.Add("Ford F-150", 69, 68);dt.Rows.Add("Subaru Forester", 67, 65);dt.Rows.Add("Jeep Wrangler", 88, 91);

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);

FlexChart for WinForms  

90 Copyright © GrapeCity, Inc. All rights reserved.         

Page 92: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.Series.Add(series2);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸を結合しますflexChart1.BindingX = "Automobile"; // Y軸を結合しますseries1.Binding = "Resale Value in 2014";series2.Binding = "Resale Value in 2015";

// 系列の名前を指定しますseries1.Name = "2014";series2.Name = "2015"; // チャートタイプをスプライン面に設定しますflexChart1.ChartType = C1.Chart.ChartType.SplineArea;

スプラインシンボルスプラインシンボル

スプラインシンボルグラフは、スプライングラフと散布図グラフを組み合わせたグラフです。シンボルを使用してデータポイント

をプロットし、データポイント間をスプラインで接続します。

3 つの IT 企業がそれぞれのカナダ、メキシコ、米国、コロンビア、チリの各センターで学生を採用するために開いた合同就職

説明会を例に挙げます。参加した企業は、TCS、Wipro、Infosys です。

スプラインシンボルグラフを使用してデータを可視化し、各社がこれらのセンターで採用した学生の数を示します。

サンプルデータテーブルサンプルデータテーブル

センターセンター TCS の採用者数の採用者数 Wipro の採用者数の採用者数 Infosys の採用者数の採用者数

カナダ 450 350 150

メキシコ 200 300 550

米国 500 350 300

コロンビア 350 650 600

チリ 650 550 400

スプラインシンボルグラフスプラインシンボルグラフ

  FlexChart for WinForms

91 Copyright © GrapeCity, Inc. All rights reserved.         

Page 93: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

上のグラフは、TCS、Wipro、Infosys のそれぞれ 5 か所のセンターで採用された学生の数を示します。

系列の数:3(TCS、Wipro、Infosys)ポイントごとの Y 値の数:1

次のコードは、このサンプルの実装です。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Pool Campus Drive")

' データテーブルに列を追加しますdt.Columns.Add("Centre", GetType(String))dt.Columns.Add("Hired by TCS", GetType(Integer))dt.Columns.Add("Hired by Wipro", GetType(Integer))dt.Columns.Add("Hired by Infosys", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add("Canada", 450, 350, 150)dt.Rows.Add("Mexico", 200, 300, 550)dt.Rows.Add("US", 500, 350, 300)dt.Rows.Add("Colombia", 350, 650, 600)dt.Rows.Add("Chile", 650, 550, 400)

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' チャートのデータソースを指定しますFlexChart1.DataSource = dt

FlexChart for WinForms  

92 Copyright © GrapeCity, Inc. All rights reserved.         

Page 94: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' X軸を結合しますFlexChart1.BindingX = "Centre"

' Y軸を結合しますseries1.Binding = "Hired by TCS"series2.Binding = "Hired by Wipro"series3.Binding = "Hired by Infosys"

' 系列の名前を指定しますseries1.Name = "TCS"series2.Name = "Wipro"series3.Name = "Infosys"

' チャートタイプをスプラインシンボルに設定しますFlexChart1.ChartType = C1.Chart.ChartType.SplineSymbols

C#

// データテーブルを作成しますDataTable dt = new DataTable("Pool Campus Drive");

// データテーブルに列を追加しますdt.Columns.Add("Centre", typeof(string));dt.Columns.Add("Hired by TCS", typeof(int));dt.Columns.Add("Hired by Wipro", typeof(int));dt.Columns.Add("Hired by Infosys", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("Canada", 450, 350, 150);dt.Rows.Add("Mexico", 200, 300, 550);dt.Rows.Add("US", 500, 350, 300);dt.Rows.Add("Colombia", 350, 650, 600);dt.Rows.Add("Chile", 650, 550, 400); // データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// チャートのデータソースを指定しますflexChart1.DataSource = dt;

// X軸を結合しますflexChart1.BindingX = "Centre";

// Y軸を結合しますseries1.Binding = "Hired by TCS";series2.Binding = "Hired by Wipro";series3.Binding = "Hired by Infosys";

// 系列の名前を指定しますseries1.Name = "TCS";series2.Name = "Wipro";series3.Name = "Infosys";

  FlexChart for WinForms

93 Copyright © GrapeCity, Inc. All rights reserved.         

Page 95: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// チャートタイプをスプラインシンボルに設定しますflexChart1.ChartType = C1.Chart.ChartType.SplineSymbols;

階段グラフ階段グラフ階段グラフは、Y 軸方向に不連続の急な変化を示すデータを、水平線と垂直線を使用して表示します。このチャートは、不規則

に急な変化を示すが、次の変化までは一定値を維持するデータを表示する際に便利です。階段グラフを使用すると、データの

傾向と、その傾向が一定値を維持する期間を判断できます。

あるソフトウェアの週ごとの売上とダウンロード数を視覚化して比較する例を考えます。これらの値は不連続に変化するため、

階段グラフを使用して視覚化できます。以下の図に示すように、これらのチャートは売上の変化を描画するだけでなく、変化の

正確なタイミングと売上が一定だった期間も示します。さらに、チャートを見るだけで、それぞれの変化の大きさが簡単にわか

ります。

FlexChart は階段グラフ、階段シンボルグラフ、階段面グラフ、塗りつぶし階段グラフをサポートします。次の表で、これらの

チャートタイプについて詳細に説明します。

階段グラフ階段グラフ

階段グラフは折れ線グラフに似ていますが、

折れ線グラフは、連続するデータポイントを最

短距離で接続するのに対して、階段グラフは、

水平線と垂直線で接続します。これらの水平

線と垂直線により、チャートは階段のような外

観になります。

折れ線グラフは変化とトレンドを描写します

が、階段グラフでは、変動の大きさと断続的な

パターンも判断できます。

階段シンボルグラフ階段シンボルグラフ

階段シンボルグラフは、階段グラフと散布図を

組み合わせたグラフです。FlexChart は、シン

ボルを使用してデータポイントをプロットし、

データポイント間を水平および垂直の階段型

折れ線で接続します。

ここでは、シンボルを使用してデータポイント

がマークされ、断続的な変化の始まりを明示

できるので便利です。

FlexChart for WinForms  

94 Copyright © GrapeCity, Inc. All rights reserved.         

Page 96: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

階段面グラフ階段面グラフ

階段面グラフは、階段グラフと面グラフを組み

合わせたグラフです。面グラフに似ています

が、データポイントを接続する方法が異なりま

す。FlexChart は、水平および垂直の階段型

折れ線を使用してデータポイントをプロットし、

X 軸と階段型折れ線の間の領域を塗りつぶし

ます。

これらは階段グラフをベースにしており、一般

に 2 つ以上の数量の不連続の断続的な変化

を比較するために使用されます。これにより、

チャートは積層グラフの外観になり、複数の系

列の関連するデータポイントが積み重なったよ

うに表示されます。

たとえば、図で示すように、特定の期間のソフ

トウェアのダウンロード数と販売数を簡単に比

較できます。

階段グラフを作成するには、チャートで適切なデータを生成し、ChartType プロパティを Step に設定する必要があります。た

だし、階段面グラフまたは階段シンボルグラフを作成するには、ChartType プロパティをそれぞれ StepArea または

StepSymbols に設定する必要があります。

C#

flexChart1.ChartType = ChartType.Step; // ChartType.StepArea or ChartType.StepSymbols

ウォータフォールウォータフォール

ウォータフォール系列を使用すると、一連の正の値と負の値の累積的な影響を把握することができます。一連の正の値と負の

値が初期値にどのように影響していくかを理解できると有益です。ウォータフォール系列は、正の値と負の値を容易に区別で

きるように縦棒を色分けして描画します。一般に、最初の値と最後の値は合計を表す縦棒で表され、中間の値は浮いた状態

の縦棒で表されます。ウォータフォール系列は、カテゴリテキストの列があり、正の値と負の値が混在している場合に使用する

ことをお勧めします。主に、在庫分析や売上分析などの定量分析がこれに該当します。これらのエンティティの定量値が増減

する場合に、チャートにはその段階的な変化が示されます。

FlexChart の次の機能を実装およびカスタマイズして、ウォータフォール系列によるデータ視覚化をさらに強化できます。

接続線接続線:接続線は、色分けされた縦棒を接続して、チャート内のデータの流れを表示します。接続線を表示するに

は、WaterFall クラスの ConnectorLines プロパティを true に設定します。

接続線のカスタマイズ接続線のカスタマイズ:表示した接続線は、ConnectorLineStyle プロパティを使用してカスタマイズできます。このプ

ロパティから、ChartStyle クラスのスタイル設定プロパティにアクセスできます。

縦棒のカスタマイズ縦棒のカスタマイズ:正の値、負の値、合計値をわかりやすく区別できるように、これらの値を示す縦棒にさまざまなス

タイルを適用することができます。そのために、Waterfall クラスで提供されている

RisingStyle、FallingStyle、TotalStyle、StartStyle など、さまざまなプロパティを使用できます。

次の図に、一連の正の値と負の値の累積的な影響を表したウォータフォール系列を示します。

  FlexChart for WinForms

95 Copyright © GrapeCity, Inc. All rights reserved.         

Page 97: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart でウォータフォール系列を使用するには、Waterfall クラスのインスタンスを作成します。このクラスは、Series クラ

スを継承します。FlexChart クラスの Series プロパティからアクセスできる FlexChart 系列コレクションに、作成したインスタン

スを追加します。

次のコードスニペットは、FlexChart でウォータフォール系列を使用する際に、さまざまなプロパティを設定する方法を示しま

す。

Visual Basic

' データテーブルを作成しますDim dt As New DataTable("Product Comparison")

' データテーブルに列を追加しますdt.Columns.Add("Costs", GetType(String))dt.Columns.Add("Amount", GetType(Integer))

' データテーブルに行を追加します dt.Rows.Add("製品の収入", 420); dt.Rows.Add("サービスの収入", 630); dt.Rows.Add("固定費", 460); dt.Rows.Add("変動費用", 320);

' データ系列のコレクションをクリヤしますFlexChart1.Series.Clear()

' Waterfall系列を作成しますDim waterFall As New C1.Win.Chart.Waterfall()

' FlexChartの系列コレクションにWaterfall系列を追加しますFlexChart1.Series.Add(waterFall)

' FlexChartのデータソースを指定します

FlexChart for WinForms  

96 Copyright © GrapeCity, Inc. All rights reserved.         

Page 98: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart1.DataSource = dt

' X軸を結合しますFlexChart1.BindingX = "Costs"

' Y軸を結合しますwaterFall.Binding = "Amount"

' WaterFallコネクタをカスタマイズしますwaterFall.ConnectorLines = TruewaterFall.ConnectorLineStyle.StrokeWidth = 0.5FwaterFall.ConnectorLineStyle.StrokeColor = Color.GraywaterFall.ConnectorLineStyle.Stroke = Brushes.Gray

' 上昇値、下降値、合計値のスタイルをカスタマイズしますwaterFall.RisingStyle.FillColor = Color.DarkOliveGreenwaterFall.FallingStyle.FillColor = Color.IndianRedwaterFall.ShowTotal = TruewaterFall.TotalStyle.FillColor = Color.DarkCyanwaterFall.TotalLabel = "合計"

' FlexChartのヘッダーと軸のタイトルを指定しますFlexChart1.Header.Content = "企業利潤 (USD)"FlexChart1.AxisY.Title = "費用(1000 USD)"

' 軸をカスタマイズしますFlexChart1.AxisY.MajorUnit = 140FlexChart1.AxisY.Min = 0FlexChart1.AxisY.Max = 700

' データラベルをカスタマイズしますFlexChart1.DataLabel.Content = "{Amount}"FlexChart1.DataLabel.Position = C1.Chart.LabelPosition.Top

C#

// データテーブルを作成しますDataTable dt = new DataTable("Product Comparison");

// データテーブルに列を追加しますdt.Columns.Add("Costs", typeof(string));dt.Columns.Add("Amount", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add("製品の収入", 420);dt.Rows.Add("サービスの収入", 630);dt.Rows.Add("固定費", 460);dt.Rows.Add("変動費用", 320);

// データ系列のコレクションをクリヤしますflexChart1.Series.Clear();

// Waterfall系列を作成しますC1.Win.Chart.Waterfall waterFall = new C1.Win.Chart.Waterfall();

// FlexChartの系列コレクションにWaterfall系列を追加しますflexChart1.Series.Add(waterFall);

// FlexChartのデータソースを指定しますflexChart1.DataSource = dt;

// X軸を結合します

  FlexChart for WinForms

97 Copyright © GrapeCity, Inc. All rights reserved.         

Page 99: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.BindingX = "Costs";

// Y軸を結合しますwaterFall.Binding = "Amount";

// WaterFallコネクタをカスタマイズしますwaterFall.ConnectorLines = true;waterFall.ConnectorLineStyle.StrokeWidth = 0.5F;waterFall.ConnectorLineStyle.StrokeColor = Color.Gray;waterFall.ConnectorLineStyle.Stroke = Brushes.Gray;

// 上昇値、下降値、合計値のスタイルをカスタマイズしますwaterFall.RisingStyle.FillColor = Color.DarkOliveGreen;waterFall.FallingStyle.FillColor = Color.IndianRed;waterFall.ShowTotal = true;waterFall.TotalStyle.FillColor = Color.DarkCyan;waterFall.TotalLabel = "合計";

// FlexChartのヘッダーと軸のタイトルを指定しますflexChart1.Header.Content = "企業利潤 (USD)";flexChart1.AxisY.Title = "費用(1000 USD)";

// 軸をカスタマイズしますflexChart1.AxisY.MajorUnit = 140;flexChart1.AxisY.Min = 0;flexChart1.AxisY.Max = 700;

// データラベルをカスタマイズしますflexChart1.DataLabel.Content = "{Amount}";flexChart1.DataLabel.Position = C1.Chart.LabelPosition.Top;

FlexChart の操作の操作

FlexChart をアプリケーションの開発に使用するには、コントロールが提供するいくつかの機能の利用方法を理解する必要が

あります。

このセクションでは、FlexChart が提供する機能に関して、重要な概念情報をタスクベースで説明します。

以下のリンクから、FlexChart のさまざまな操作方法を説明するセクションにアクセスできます。

データ

外観

エンドユーザー操作

設計時サポート

FlexChart の要素

Trend Linesエクスポート

データデータ

グラフにまず第一に必要なものはデータです。データなしでは、グラフは視覚化どころか何も表示できません。したがって、グラ

フを操作する際の最初の仕事は、グラフにデータを表示することであり、それによってデータを操作し、解釈できるようになりま

す。

グラフデータに関して言えば、データは、3 つの段階で指定、表現、および解釈されます。

データの提供

データのプロット

FlexChart for WinForms  

98 Copyright © GrapeCity, Inc. All rights reserved.         

Page 100: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

これらのセクションにアクセスすると、FlexChart についてこれらの段階の詳細を参照できます。

データの提供データの提供

グラフにデータをプロットするには、まずグラフにデータを提供する必要があります。

以下は、FlexChart にデータを提供するために使用できる 3 つの方法です。

定義済みの配列からデータをロードする

データを設計時に手動またはコードを使用して入力する

データソースを使用してデータを連結する

配列からのデータのロード配列からのデータのロード

定義済み配列から FlexChart にデータをロードするには、DataSource プロパティを使用して系列のデータソースを設定しま

す。このプロパティは、任意のオブジェクトのコレクションを受け取ります。

Point 配列を使用して、整数型の X 座標と Y 座標の順序付きペアを 2 次元平面内に設定できます。または、PointF 配列を

使用して、浮動型の X 座標と Y 座標の順序付きペアを 2 次元平面内に設定できます。

2 つのフィールドしか使用しないチャートの場合(横棒、縦棒、散布図、折れ線など)、Point/PointF 配列を使用してデー

タを入力できます。3 つ以上のフィールドを使用するチャート(バブル、ローソク足、HighLowOpenClose など)では、別

の方法を選択することもできます。手動でデータテーブルを作成し、その適切なフィールドにチャートの軸を連結します。

Point/PointF などのオブジェクトを使用するほかに、匿名のオブジェクト配列を使用して FlexChart にデータをロードすることも

できます。

さらに、double 型の X 配列と Y 配列を受け取る SetData() があります。FlexChart に系列を追加し、SetData() で double 型の X 配列と Y 配列を渡すだけで、データを FlexChart にロードできます。

SetData() を使用して系列にデータを追加する方法については、「系列へのデータの追加」を参照してください。

これらの方法を 1 つ使用して、FlexChart にデータをロードしてみます。

ある大手国際銀行向けに、銀行金融業務およびデータの維持管理用ソフトウェアを作成している IT 企業を考えます。ソフト

ウェアの作成には、設計 (1)、コーディング (2)、テスト (3) という 3 つの主要な段階があります。これらの段階を遂行するため

に、同社はオフショア業務とオンサイト業務を行います。

オフショアとは開発者の敷地内で作業することであり、オンサイトは顧客の敷地内で作業することです。

当然ながら、ソフトウェアの工数に関連してオフショア業務とオンサイト業務の間の作業の配分量を分析する必要があります。

以下は、データテーブルです。

作業配分作業配分 設計設計 (1) コーディングコーディング (2) テストテスト (3)

オフショア 100 400 280

オンサイト 80 100 150

オフショア業務とオンサイト業務の作業配分を比較する必要があるため、このシナリオでは縦棒グラフを使用します。

次のコードは、このサンプルの実装です。

Visual Basic

' データ系列コレクションをクリアしますFlexChart1.Series.Clear()

  FlexChart for WinForms

99 Copyright © GrapeCity, Inc. All rights reserved.         

Page 101: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データ系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' データ系列にデータポイントを追加しますseries1.BindingX = "X"series1.Binding = "Y"series1.DataSource = New System.Drawing.Point() {New System.Drawing.Point(1, 100),New System.Drawing.Point(2, 400),New System.Drawing.Point(3, 280)}series1.Name = "沖合"

series2.BindingX = "X"series2.Binding = "Y"series2.DataSource = New System.Drawing.Point() {New System.Drawing.Point(1, 80),New System.Drawing.Point(2, 100),New System.Drawing.Point(3, 150)}series2.Name = "オンサイト"

' データ系列コレクションにデータ系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

' チャートタイプを縦棒グラフに設定しますFlexChart1.ChartType = C1.Chart.ChartType.Column

C#

// データ系列コレクションをクリアしますflexChart1.Series.Clear();

// データ系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();

// データ系列にデータポイントを追加しますseries1.BindingX = "X";series1.Binding = "Y";series1.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(1,100),new System.Drawing.Point(2,400),new System.Drawing.Point(3,280)};series1.Name = "沖合";

series2.BindingX = "X";series2.Binding = "Y";series2.DataSource = new System.Drawing.Point[] { new System.Drawing.Point(1,80),new System.Drawing.Point(2,100),new System.Drawing.Point(3,150)};series2.Name = "オンサイト";

// データ系列コレクションにデータ系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);

// チャートタイプをカラムチャートに設定しますflexChart1.ChartType = C1.Chart.ChartType.Column;

コードを実行すると、次の出力が表示されます。

FlexChart for WinForms  

100 Copyright © GrapeCity, Inc. All rights reserved.         

Page 102: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

設計時またはプログラムによるデータの手動入力設計時またはプログラムによるデータの手動入力

FlexChart を使用すると、設計時またはコードの使用という 2 つの方法でデータを手動入力できます。

コードを使用して手動でデータを入力するには、DataSource プロパティを使用して、さまざまなオブジェクト配列を系列に割り

当てます。

さまざまなオブジェクト配列を使用してデータをロードする方法の完全な情報については、「静的配列からのデータのロード」を

参照してください。

設計時に、Series コレクションエディタを使用して手動でデータを入力できます。このエディタにアクセスするには、プロパティ

ウィンドウの Series プロパティの横にある省略符ボタンをクリックします。

詳細については、「系列コレクションエディタ」を参照してください。

  FlexChart for WinForms

101 Copyright © GrapeCity, Inc. All rights reserved.         

Page 103: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

データソースを使用したデータの連結データソースを使用したデータの連結

データを連結するということは、1 つ以上のデータコンシューマーをデータプロバイダに同期して接続するということです。デー

タが連結されると、グラフは、連結されたすべてのデータを指定された系列のデータソースとして使用し、系列とグラフプロパ

ティに従ってデータをグラフ面上に表現します。

データを連結するには、まずデータソースを作成する必要があります。ADO.NET データソースオブジェクト(例:DataView、

DataTable、DataSet、DataViewManager)などの多数のデータソースがあります。さらに、サードパーティのデータソースもあ

ります(例:C1ExpressTable、C1ExpressView、C1ExpressConnection、C1DataView、C1DataTableSource、C1DataSet)。

以下のセクションでは、データの連結について詳細に説明します。

FlexChart へのデータの連結

データソースへの FlexChart の直接連結

FlexChart へのデータの連結へのデータの連結

FlexChart へのデータ連結は、DataSource プロパティの設定、BindingX の設定、Binding プロパティの設定の 3 つの手

順で行われます。

手順手順 1::DataSource プロパティの設定プロパティの設定

設計時設計時

設計時に DataSource プロパティを設定するには、次の手順を実行します。

1. プロパティプロパティウィンドウから、FlexChart を選択します。

2. DataSource プロパティのドロップダウンリストボックスから、目的のデータソースを選択します。

FlexChart for WinForms  

102 Copyright © GrapeCity, Inc. All rights reserved.         

Page 104: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

コードの場合コードの場合

次のコードを使用して DataSource プロパティを設定します。

Visual Basic

FlexChart1.DataSource = bindingSource1

C#

flexChart1.DataSource = bindingSource1;

DataSource プロパティは、チャートレベルおよび系列レベルの両方で設定できます。このプロパティを系列レベルで設

定するには、プロパティウィンドウの Series に移動します。省略符省略符ボタンをクリックして、Series コレクションエディタを開

きます。DataSource プロパティに移動し、関連するデータソースをドロップダウンリストボックスから選択します。

手順手順 2::BindingX プロパティとプロパティと Binding プロパティの設定プロパティの設定

DataSource プロパティを設定したら、チャートのデータ系列に適用する データソース内のフィールドを指定する必要がありま

す。簡単に言えば、第 1 X 配列と第 1 Y 配列のデータ値を設定するフィールドを指定する必要があります(チャートタイプに

よっては第 2 Y 配列も)。

BindingX プロパティは X 値を含むフィールドに設定し、Binding プロパティは Y 値を含むフィールドに設定する必要がありま

す。

設計時設計時

次の手順を実行します。

1. BindingX および Binding プロパティに移動します。

2. [[BindingX]]ドロップダウンリストボックスから目的のフィールドを選択して X データ配列に連結します。

3. [[Binding]] ドロップダウンリストボックスから目的のフィールドを選択して Y データ配列に連結します。

コードの場合コードの場合

次のコードを使用して、実行時に BindingX プロパティと Binding プロパティを設定します。

  FlexChart for WinForms

103 Copyright © GrapeCity, Inc. All rights reserved.         

Page 105: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Visual Basic

FlexChart1.BindingX = "Id"series1.Binding = "Sum"series2.Binding = "Cost"

C#

flexChart1.BindingX = "Id";series1.Binding = "Sum";series2.Binding = "Cost";

DataSource プロパティと同様に、Binding X プロパティと Binding プロパティもチャートレベルと系列レベルで設定でき

ます。これらのプロパティを系列レベルで設定するには、プロパティプロパティウィンドウの Series に移動し、Series の横にある省省

略符略符ボタンをクリックします。Series コレクションエディタコレクションエディタで、BindingX プロパティと Binding プロパティに移動します。

次に、これらのプロパティのドロップダウンリストボックスから適切なフィールドを選択します。

データソースへのデータソースへの FlexChart の直接連結の直接連結

データソースの内容と実際のグラフの間には少し距離があるため、データを集約しないとプロットできないことがよくあります。

ただし、プロットするデータが既にデータビューや別のデータソースオブジェクトとして用意されていることもあります。その場合

は、グラフを直接データソースオブジェクトに連結できます。

FlexChart コントロールを直接データソースに連結するには、まず DataSource プロパティをデータビュー、データテーブル、

連結ソースなどのデータソースオブジェクトに設定する必要があります。次に、グラフの各系列をデータソースオブジェクト内の

フィールドに連結する必要があります。それには、BindingX プロパティと Binding プロパティを使用します。

ケーススタディとして、さまざまな食品や飲料を提供するフードチェーンレストランを考えます。この店では、顧客に対して月 2回特別サービスを提供しています。最近この店は、5 品以上の食品を購入した顧客に対して、それぞれの品物に割引を行うこ

とを決定しました。ただし、割引率は、購入した品物の数量に基づいて決定されます。

ある顧客(QUICK-Stop という名前の会社)が数種類の品物を大量に注文しました。顧客は、発注書(注文 ID:10273)に記載

された数量に対して、コンピュータによって生成された請求書を受け取りました。その明細は次のとおりです。

製品製品 単価単価 ($) 数量数量 割引(割引(%))

Chang 15.20 25 20

Queso Cabrales 16.80 50 20

Nord-Ost Matjeshering 20.70 35 20

Escargots de Bourgogne 10.60 30 20

ここで、FlexChart を使用して請求書データを可視化し、すべての商品について適切にデータを解釈することにします。

ここでは、C1NWind.mdb データベース内の Order Details データテーブルを使用します。

次のコードを使用して、このケーススタディを実装します。

Visual Basic

' データソースからデータを取得しますDim conPath As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & vbCr & vbLf & "Data Source=C:\\Users\\Windows 8.1\\Desktop\\C1NWind.mdb"Dim conQuery As String = "SELECT * FROM [Order Details] WHERE OrderID = 10327"Dim da As New OleDbDataAdapter(conQuery, conPath)

FlexChart for WinForms  

104 Copyright © GrapeCity, Inc. All rights reserved.         

Page 106: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' データセットを塗り潰しますda.Fill(ds)

' データセットへバインディングソースに結合しますbs.DataSource = ds.Tables(0)

' バインディングソースに対してチャートを結合しますFlexChart1.DataSource = bs

' 系列コレクションをクリアしますFlexChart1.Series.Clear()

' 新しい系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' 系列コレクションに作成した系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' 系列の名前を指定しますseries1.Name = "Unit Price"series2.Name = "Quantity"series3.Name = "Discount"

' bind X-axisFlexChart1.BindingX = "Product"

' Y軸を結合しますseries1.Binding = "UnitPrice"series2.Binding = "Quantity"series3.Binding = "Discount"

' チャートタイプを設定しますFlexChart1.ChartType = C1.Chart.ChartType.Scatter

C#

// データソースからデータを取得しますstring conPath = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Users\\Windows 8.1\\Desktop\\C1NWind.mdb";string conQuery = "SELECT * FROM [Order Details] WHERE OrderID = 10327";OleDbDataAdapter da = new OleDbDataAdapter(conQuery, conPath);

// データセットを塗り潰しますda.Fill(ds);

// データセットへバインディングソースに結合しますbs.DataSource = ds.Tables[0];

// バインディングソースに対してチャートに結合しますflexChart1.DataSource = bs;

// 系列コレクションをクリアしますflexChart1.Series.Clear();

// 新しい系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

  FlexChart for WinForms

105 Copyright © GrapeCity, Inc. All rights reserved.         

Page 107: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// 系列コレクションに作成した系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// 系列の名前を指定しますseries1.Name = "Unit Price";series2.Name = "Quantity";series3.Name = "Discount";

// X軸を結合しますflexChart1.BindingX = "Product";

// Y軸を結合しますseries1.Binding = "UnitPrice";series2.Binding = "Quantity";series3.Binding = "Discount";

// チャートタイプを設定しますflexChart1.ChartType = C1.Chart.ChartType.Scatter;

出力は次のとおりです。

データのプロットデータのプロット

FlexChart は、関連する値が BindingX および Binding プロパティに設定されている場合に、フィールドまたはデータ配列の

形式で連結されたデータをプロットします。

使用するチャートタイプに従って、BindingX および Binding プロパティに値を設定する必要があります。たとえば、散布図グラ

フの場合は、BindingX プロパティと Binding プロパティにそれぞれ 1 つの値(フィールド)を設定する必要があります。一方、

バブルチャートの場合は、BindingX プロパティに 1 つの値(フィールド)を設定し、Binding プロパティに 2 つの値(Y 値を指定

するフィールドと、バブルのサイズを指定するフィールド)を設定する必要があります。

次のコードスニペットを参照してください。

FlexChart for WinForms  

106 Copyright © GrapeCity, Inc. All rights reserved.         

Page 108: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Visual Basic

' in case of the Scatter ChartFlexChart1.BindingX = "Beverages"series1.Binding = "Unit Price"

C#

// 散布図グラフの場合flexChart1.BindingX = "Beverages";series1.Binding = "Unit Price";

Visual Basic

' in case of the Bubble ChartFlexChart1.BindingX = "Year"series1.Binding = "Number of Employees,Annual Revenue"

C#

// バブルチャートの場合series1.BindingX = "Year";series1.Binding = "Number of Employees,Annual Revenue";

データがプロットされたら、それを使用して目的に合わせてデータを視覚化できます。

以下のセクションでは、系列をカスタマイズして不規則なデータをプロットする方法について説明します。

Null 値の補間

系列のカスタマイズ系列のカスタマイズ

系列がチャートに表示されたら、表示された系列をカスタマイズして、より効率的な管理を行うことができます。

FlexChart では、プロット領域、凡例、またはその両方で系列を表示または非表示にして系列をカスタマイズできます。

以下のセクションでは、さまざまなカスタマイズについて詳細に説明します。

系列の表示または非表示

系列を凡例から除外

系列の表示または非表示系列の表示または非表示

チャートのスペースには限りがあるため、チャートに表示される系列が大量にある場合は、系列の管理が確実に必要になりま

す。

FlexChart では、系列の Visibility プロパティを使用して系列を管理できます。Visibility プロパティは、SeriesVisibility 列挙

型の値を受け取ります。

このプロパティを以下に示す値に設定して、系列を表示または非表示にすることができます。

値値 説明説明

SeriesVisibility.Visible 系列はプロットと凡例の両方に表示されます。

SeriesVisibility.Plot 系列はプロットには表示されますが、凡例には表示されません。

SeriesVisibility.Legend 系列は凡例には表示されますが、プロットには表示されません。

  FlexChart for WinForms

107 Copyright © GrapeCity, Inc. All rights reserved.         

Page 109: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

SeriesVisibility.Hidden 系列はプロットと凡例のどちらにも表示されません。

横棒グラフで同じシナリオを使用してみます。完全なシナリオについては、「横棒グラフ」を参照してください。

同じシナリオで、商品を単価と在庫単位数だけで比較して表示するとします。

それには、Visibility プロパティを使用します。

次のコードスニペットを参照してください。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

' 「注目中の単位」を非表示にしますseries3.Visibility = C1.Chart.SeriesVisibility.Hidden

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」を非表示にしますseries3.Visibility = C1.Chart.SeriesVisibility.Hidden;

系列(発注単位数)をプロット領域には表示して凡例には表示しない場合は、Visibility プロパティを次のように使用します。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

FlexChart for WinForms  

108 Copyright © GrapeCity, Inc. All rights reserved.         

Page 110: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 「注目中の単位」はプロットには表示されますが、凡例には表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Plot

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」はプロットには表示されますが、凡例には表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Plot;

同様に、系列を凡例に表示してプロット領域には表示しない場合は、Visibility プロパティを次のように設定します。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

'「注目中の単位」は凡例には表示されますが、プロットには表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Legend

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」は凡例には表示されますが、プロットには表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Legend;

  FlexChart for WinForms

109 Copyright © GrapeCity, Inc. All rights reserved.         

Page 111: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Null 値の補間値の補間

データをプロットする目的で FlexChart に連結されるデータテーブルのデータフィールドには、null 値が含まれることがよくあ

ります。null 値を含むデータをプロットすると、FlexChart にギャップができます。プロットされたデータにギャップがあると、デー

タが不完全で、整合性がないように見えます。

FlexChart では、InterpolateNulls プロパティを使用することで、このような整合性のなさを解決することができま

す。InterpolateNulls プロパティを設定して、データ内の null 値によってできたギャップを自動的に埋めることができます。

InterpolateNulls プロパティは、折れ線グラフと面グラフにのみ適用できます。

Visual Basic

FlexChart1.Options.InterpolateNulls = True

C#

flexChart1.Options.InterpolateNulls = true;

外観外観

チャートの外観は、チャートの全体的なルックアンドフィールを決定します。見栄えがよくわかりやすい外観は、読み手の目を

ビジュアル表現されたデータに引きつけます。データの解釈も容易になります。

FlexChart の外観は、さまざまな方法でカスタマイズできます。以下のセクションで、これらについて説明します。

フォント

系列のシンボルスタイル

テーマ

色色

FlexChart for WinForms  

110 Copyright © GrapeCity, Inc. All rights reserved.         

Page 112: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

色を使用して、チャートの見た目の印象を向上させることができます。対話式に色を選択する、チャートパレットを設定する、

RGB 値を指定する、色相/彩度/輝度を指定する、透明色を使用するなどして、色をカスタマイズできます。

FlexChart では、チャート全体の背景と前景の色だけでなく、次の要素の色もカスタマイズできます。

系列

ヘッダーとフッター

凡例

プロット領域

ラベル

以下のリンクをクリックして、色のさまざまな使用方法を参照してください。

対話式の色の選択

チャートパレットの設定

RGB 色の指定

色相/彩度/輝度の指定

透明色の使用

対話式の色の選択対話式の色の選択

Windows の標準の色指定ダイアログのように動作する .NET の色指定ダイアログを使用して、対話式に色を選択できます。

色は、Windows の基本色またはカスタム色から選択できます。また、全カラースペクトルから対話式に選択することもできま

す。

パレットの設定パレットの設定

Palette プロパティを使用して、好みの FlexChart パレットを設定できます。デフォルトでは、標準のチャートパレットを指定す

る Palette.Standard 設定が使用されます。

次に、FlexChart で使用できるパレットを示します。

パレット設定パレット設定 プレビュープレビュー

Standard(デフォルト)

  FlexChart for WinForms

111 Copyright © GrapeCity, Inc. All rights reserved.         

Page 113: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Cocoa

Coral

Dark

FlexChart for WinForms  

112 Copyright © GrapeCity, Inc. All rights reserved.         

Page 114: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Highcontrast

Light

Midnight

  FlexChart for WinForms

113 Copyright © GrapeCity, Inc. All rights reserved.         

Page 115: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Modern

Organic

Slate

FlexChart for WinForms  

114 Copyright © GrapeCity, Inc. All rights reserved.         

Page 116: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Zen

Cyborg

Superhero

  FlexChart for WinForms

115 Copyright © GrapeCity, Inc. All rights reserved.         

Page 117: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Flatly

Darkly

Cerulan

Custom 現在指定されているパレットをカスタムグループにコピーします。

FlexChart for WinForms  

116 Copyright © GrapeCity, Inc. All rights reserved.         

Page 118: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

RGB 色の指定色の指定

RGB 要素で色を指定することもできます。この方法は、別の RGB 色と色を合わせる場合に便利です。RGB 色の値は、1 色に

含まれる赤、緑、青の各要素の 16 進数値を組み合わせたものです。各要素の最小値は「00」、最大値は「ff」です。たとえば、

「#ff00ff」はマゼンタ色を指定します(赤色の最大値、青色の最大値、緑色なしの組み合わせ)。

色相色相/彩度彩度/輝度の指定輝度の指定

色は、RGB 要素で指定できるほか、色相、彩度、輝度で表すこともできます。色相、彩度、輝度は、RGB カラースキームの完

全な構成情報です。色相は、赤/緑/青で構成されるカラーホイール内の特定の色調を表します。彩度は、灰色から純色までの

色相の強度です。輝度は、色調の明るさまたは暗さです。

透明色の使用透明色の使用

チャート自身を除くすべての要素の背景と前景を「Transparent(透明)」にできます。

背景または前景が透明な場合は、その外側にある要素の色が背景に使用されます。たとえば、ヘッダーの背景を

Transparent に設定すると、チャート自身の背景がヘッダーに使用されます。

つまり、要素の背景色が透明な場合、要素の背景は描画されません。また、要素の前景色が透明な場合、前景(たとえば、タ

イトルのテキスト)は描画されません。

透明色のプロパティは、設計時には、Visual Studio のプロパティウィンドウで Control、Header、Footer、Legend、ChartArea、および ChartLabels オブジェクトの[スタイル]ノードにあります。

フォントフォント

さまざまなチャート要素に対してフォントをカスタマイズすると、チャートの印象を向上させることができます。要素のフォントサ

イズを調整して、チャート全体のサイズに対して最適なサイズを選択できます。

フォント関連のプロパティは、プロパティウィンドウの[フォント]ノードの下にあります。FlexChart でフォントを変更またはカスタ

マイズするには、次に示すように、標準の .NET フォントプロパティエディタを使用します。

  FlexChart for WinForms

117 Copyright © GrapeCity, Inc. All rights reserved.         

Page 119: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

系列のシンボルスタイル系列のシンボルスタイル

要件によっては、チャート内の系列の外観をカスタマイズする必要があります。

FlexChart では、Series コレクションエディタにある SymbolMarker、SymbolSize、および SymbolStyle プロパティを使用し

て、チャートの系列をカスタマイズできます。

詳細については、「系列コレクションエディタ」を参照してください。

SymbolMarker プロパティを使用すると、系列の各データポイントに使用されるマーカーの図形を設定できます。SymbolSizeプロパティを使用すると、系列のレンダリングに使用されるシンボルのサイズ(ピクセル単位)を設定できます。また、

SymbolStyle プロパティを使用して、系列で使用されるシンボルの塗りつぶし色、フォント、ストローク色、およびストローク幅を

設定できます。

次の表に、これらのプロパティが各チャートタイプにどのように影響するかを示します。

値値 SymbolMarker の効果の効果 SymbolSize の効果の効果 SymbolStyle の効果の効果

ChartType.Column 効果なし 効果なし 効果なし

FlexChart for WinForms  

118 Copyright © GrapeCity, Inc. All rights reserved.         

Page 120: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ChartType.Bar 効果なし 効果なし 効果なし

ChartType.Line 効果なし 効果なし 効果なし

ChartType.Scatter シンボルマーカーを変更 シンボルサイズを変更 シンボルスタイルを変更

ChartType.LineSymbols シンボルマーカーを変更 シンボルサイズを変更 シンボルスタイルを変更

ChartType.Area 効果なし 効果なし 効果なし

ChartType.Spline 効果なし 効果なし 効果なし

ChartType.SplineSymbols シンボルマーカーを変更 シンボルサイズを変更 シンボルスタイルを変更

ChartType.SplineArea 効果なし 効果なし 効果なし

ChartType.Bubble シンボルマーカーを変更 効果なし シンボルスタイルを変更

ChartType.Candlestick 効果なし シンボルサイズを変更 効果なし

ChartType.HighLowOpenClose 効果なし シンボルサイズを変更 効果なし

SymbolSize プロパティはバブルチャートに効果がありませんが、プロパティウィンドウの[オプション]ノードにある

BubbleMaxSize プロパティと BubbleMinSize プロパティを設定することで、バブルチャートのバブルのサイズを変更で

きます。

テーマテーマ

FlexChart には、さまざまな定義済みテーマを適用することができます。また、これらのテーマをテーマデザイナで変更すること

もできます。

詳細については、Themes for WinForms のオンラインヘルプを参照してください。

エンドユーザー操作エンドユーザー操作

チャートの機能については、いくつかの特別なツールを使用しないと対応できない特別な要件がある場合があります。

そのような要件に対応するために、FlexChart では、一連の変換メソッドと対話式の組み込みツールを提供しています。これら

のツールは、アプリケーションをさらにカスタマイズおよび開発するために役立ちます。

エンドユーザー操作の詳細については、以下のセクションを参照してください。

ツールチップ

ツールチップツールチップ

ツールチップは、チャートのデータポイントまたは系列の上にマウスポインタを合わせると表示されるポップアップです。次のよ

うに、さまざまな状況でチャートデータに関する詳細で有益な情報を提供します。

単一系列のグラフ単一系列のグラフ:データ値と系列名がツールチップに表示されます。

複合チャート複合チャート:1 つのカテゴリに対して複数の系列の複数のデータ値がツールチップに表示されます。

円グラフ円グラフ:セグメントの名前とパーセンテージまたは値がツールチップに表示されます。

FlexChart のデフォルトでは、ツールチップにデータポイントの Y 値が表示されます。ただし、定義済みのパラメータと書式を使

用して、ツールチップにカスタムコンテンツを作成したり書式設定することができます。さらに、複合チャートを使用する場合

は、共有ツールチップを作成することもできます。

FlexChart のツールチップの詳細については、次のトピックを参照してください。

  FlexChart for WinForms

119 Copyright © GrapeCity, Inc. All rights reserved.         

Page 121: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

デフォルトツールチップ

ツールチップコンテンツのカスタマイズ

ツールチップコンテンツの書式設定

共有ツールチップ

デフォルトツールチップデフォルトツールチップ

FlexChart では、データポイントまたは系列にマウスポインタを合わせると、デフォルトのツールチップが表示されます。デフォ

ルトのツールチップには、マウスポインタを合わせたデータポイントの Y 値が表示されます。ツールチップにカスタムコンテンツ

が存在しない場合は、基底のデータを使用して、デフォルトのツールチップが生成されます。

次の図は、データポイントのデータ値を示すデフォルトのツールチップです。

ツールチップコンテンツのカスタマイズツールチップコンテンツのカスタマイズ

FlexChart では、ツールチップの Content プロパティに定義済みのパラメータを設定することで、ツールチップコンテンツを簡単にカスタ

マイズできます。

ツールチップをカスタマイズするには、ChartToolTip クラスの Content プロパティのテンプレート文字列に定義済みのパラメータを設

定します。

次の表に、ツールチップコンテンツのカスタマイズに適用できる定義済みのパラメータを示します。

パラメータパラメータ 説明説明

x データポイントの X 値を示します。

FlexChart for WinForms  

120 Copyright © GrapeCity, Inc. All rights reserved.         

Page 122: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

y データポイントの Y 値を示します。

value データポイントの Y 値を示します。

name データポイントの X 値を示します。

seriesName 系列の名前を表示します。

pointIndex データポイントのインデックスを示します。

次の図は、インデックスとデータポイント値を示すカスタマイズされたツールチップコンテンツです。

次のコードは、特定の週の毎日の Web サイトの訪問者数のデータを比較して表示します。このコードは、Content プロパティを設定し

てツールチップコンテンツをカスタマイズする方法を示します。

Visual Basic

'Contentプロパティを設定します。FlexChart1.ToolTip.Content = "インデックス: {pointIndex}" & vbLf & "日: {name}" & vbLf & "{seriesName}: {Visitors}"

C#

// Contentプロパティを設定します。 flexChart1.ToolTip.Content = "インデックス: {pointIndex}\n日: {name}\n{seriesName}: {Visitors}";

ツールチップコンテンツの書式設定ツールチップコンテンツの書式設定

FlexChart では、数字の区切り文字、通貨記号、日時形式を表示して、ツールチップをさらに詳細に表示できます。

FlexChart では、標準およびカスタムの書式文字列を使用して、ツールチップのカスタムコンテンツを書式設定できます。書式文字列は、

.NET に用意されているさまざまな数値および日時形式と同じです。

  FlexChart for WinForms

121 Copyright © GrapeCity, Inc. All rights reserved.         

Page 123: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

書式文字列の詳細については、数値および日時書式文字列を参照してください。

次の図は、インデックスと書式設定されたデータポイント値を示すカスタマイズされたツールチップコンテンツです。

次のコードは、特定の週の毎日の Web サイトの訪問者数のデータを比較して表示します。このコードは、Content プロパティを設定して

ツールチップコンテンツを書式設定する方法を示します。

Visual Basic

'Contentプロパティを構成します。FlexChart1.ToolTip.Content = "インデックス: {pointIndex}" & vbLf & "日: {name}" & vbLf & "{seriesName}: {Visitors:F}"

C#

//Contentプロパティを構成します。flexChart1.ToolTip.Content = "インデックス: {pointIndex}\n日: {name}\n{seriesName}: {Visitors:F}";

共有ツールチップ共有ツールチップ

共有ツールチップは、チャート内の 1 つの X 軸のすべてのデータ値を 1 つのツールチップに強調表示します。

複合チャートタイプを含むチャートでは、1 つのツールチップに共通の X 値に対する複数の Y 値を表示することがよくありま

す。このような場合は、Content プロパティを適切に設定して、FlexChart ツールチップを共有ツールチップとして使用できま

す。

次の図は、1 つの X 値にすべての系列の Y 値を表示する共有ツールチップです。

FlexChart for WinForms  

122 Copyright © GrapeCity, Inc. All rights reserved.         

Page 124: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

このコードは、特定の週の毎日の Web サイトの訪問者、一意の訪問者、リンククリックの数のデータを比較して表示します。こ

のコードは、Content プロパティを設定して共有ツールチップを作成する方法を示します。

Visual Basic

'Contentプロパティを構成します。FlexChart1.ToolTip.Content = "インデックス: {pointIndex}" & vbLf & "日: {name}" & vbLf & "訪問者: {Visitors}" & vbLf & "ユニーク訪問者: {Unique Visitors}" & vbLf & "リンククリック: {Link Click}"

C#

//Contentプロパティを構成します。flexChart1.ToolTip.Content = "インデックス: {pointIndex}\n日: {name}\n訪問者: {Visitors}\nユニーク訪問者: {Unique Visitors}\nリンククリック: {Link Click}";

軸スクロールバー軸スクロールバー

チャートに大量の値またはデータが存在すると、コンパクトなユーザーインタフェースでは特に、データの解釈が難しくなりま

す。軸スクロールバーは、特定の範囲内にあって関連性の高いデータを容易に解釈できるようにすることで、この問題を解決

します。

FlexChart では、主軸(X 軸と Y 軸)と第 2 軸の両方に軸スクロールバーを追加できます。軸に軸スクロールバーを追加するに

は、AxisScrollbar クラスのインスタンスを作成する必要があります。このインスタンスは、Axis クラス型のオブジェクトをパラ

メータとして受け取ります。つまり、軸にスクロールバーを表示するには、AxisScrollbar インスタンスを作成するとき

に、Axis オブジェクトを渡す必要があります。

  FlexChart for WinForms

123 Copyright © GrapeCity, Inc. All rights reserved.         

Page 125: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

AxisScrollbar クラスには、それぞれスクロールバーの最大値と最小値を設定する Maximum および Minimum プロパティ

があります。また、それぞれコントロールの下限値と上限値を設定する LowerValue および UpperValue プロパティもありま

す。下限値と上限値は、スクロールバーがサイズ変更されたり移動されると変化します。LowerValue または UpperValue プロ

パティのいずれかが変化すると、ValueChanged イベントが発生します。

スクロールバーを水平方向または垂直方向に設定するには、Orientation プロパティを使用します。このプロパティが変化す

ると、OrientationChanged イベントが発生します。

次のコードスニペットを参照してください。

Visual Basic

Imports C1.Win.ChartImports C1.Win.Chart.InteractionImports System.Collections.GenericImports System.ComponentModelImports System.DataImports System.DrawingImports System.LinqImports System.TextImports System.Threading.TasksImports System.Windows.FormsPublic Class Form1 Private _horizontalAxisScrollbar As AxisScrollbar Private _verticalAxisScrollbar As AxisScrollbar Public Sub New() InitializeComponent() SetupChart() End Sub Public Sub SetupRangeSelector() If _horizontalAxisScrollbar IsNot Nothing OrElse _verticalAxisScrollbar IsNot Nothing Then Return End If

' 平方向AxisScrollbarを追加します _horizontalAxisScrollbar = New AxisScrollbar(flexChart1.AxisX) AddHandler _horizontalAxisScrollbar.ValueChanged, AddressOf XRangeSelector_ValueChanged

' 垂直方向AxisScrollbarを追加します _verticalAxisScrollbar = New AxisScrollbar(flexChart1.AxisY) _verticalAxisScrollbar.ScrollButtonsVisible = False AddHandler _verticalAxisScrollbar.ValueChanged, AddressOf YRangeSelector_ValueChanged End Sub

Private Sub XRangeSelector_ValueChanged(sender As Object, e As EventArgs) flexChart1.AxisX.Min = _horizontalAxisScrollbar.LowerValue flexChart1.AxisX.Max = _horizontalAxisScrollbar.UpperValue End Sub Private Sub YRangeSelector_ValueChanged(sender As Object, e As EventArgs) flexChart1.AxisY.Min = _verticalAxisScrollbar.LowerValue flexChart1.AxisY.Max = _verticalAxisScrollbar.UpperValue End Sub

Private Sub SetupChart() Dim rnd = New Random() Dim pointsCount = rnd.[Next](1, 30)

FlexChart for WinForms  

124 Copyright © GrapeCity, Inc. All rights reserved.         

Page 126: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Dim pointsList = New List(Of DataItem)() Dim [date] As New DateTime(DateTime.Now.Year - 3, 1, 1) While [date].Year < DateTime.Now.Year pointsList.Add(New DataItem() With { .[Date] = [date], .Series1 = rnd.[Next](100) }) [date] = [date].AddDays(1) End While

flexChart1.BeginUpdate() flexChart1.Series.Clear() flexChart1.ChartType = C1.Chart.ChartType.Line

flexChart1.BindingX = "Date" flexChart1.Series.Add(New Series() With { .Name = "Series1", .Binding = "Series1" }) flexChart1.DataSource = pointsList.ToArray()

flexChart1.EndUpdate() End Sub

Private Class DataItem Public Property Series1() As Integer Get Return m_Series1 End Get Set m_Series1 = Value End Set End Property Private m_Series1 As Integer Public Property [Date]() As DateTime Get Return m_Date End Get Set m_Date = Value End Set End Property Private m_Date As DateTime End Class

Private Sub flexChart1_Rendered(sender As Object, e As RenderEventArgs) SetupRangeSelector() End SubEnd Class

C#

using C1.Win.Chart;using C1.Win.Chart.Interaction;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;

  FlexChart for WinForms

125 Copyright © GrapeCity, Inc. All rights reserved.         

Page 127: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

using System.Windows.Forms;

namespace AxisScrollbarCS{ public partial class Form1 : Form { AxisScrollbar _horizontalAxisScrollbar; AxisScrollbar _verticalAxisScrollbar; public Form1() { InitializeComponent(); SetupChart(); } public void SetupRangeSelector() { if (_horizontalAxisScrollbar != null || _verticalAxisScrollbar != null) return;

// 平方向AxisScrollbarを追加します _horizontalAxisScrollbar = new AxisScrollbar(flexChart1.AxisX); _horizontalAxisScrollbar.ValueChanged += XRangeSelector_ValueChanged;

// 垂直方向AxisScrollbarを追加します _verticalAxisScrollbar = new AxisScrollbar(flexChart1.AxisY); _verticalAxisScrollbar.ScrollButtonsVisible = false; _verticalAxisScrollbar.ValueChanged += YRangeSelector_ValueChanged; }

void XRangeSelector_ValueChanged(object sender, EventArgs e) { flexChart1.AxisX.Min = _horizontalAxisScrollbar.LowerValue; flexChart1.AxisX.Max = _horizontalAxisScrollbar.UpperValue; } void YRangeSelector_ValueChanged(object sender, EventArgs e) { flexChart1.AxisY.Min = _verticalAxisScrollbar.LowerValue; flexChart1.AxisY.Max = _verticalAxisScrollbar.UpperValue; }

void SetupChart() { var rnd = new Random(); var pointsCount = rnd.Next(1, 30);

var pointsList = new List<DataItem>(); for (DateTime date = new DateTime(DateTime.Now.Year - 3, 1, 1); date.Year < DateTime.Now.Year; date = date.AddDays(1)) { pointsList.Add(new DataItem() { Date = date, Series1 = rnd.Next(100) }); }

flexChart1.BeginUpdate(); flexChart1.Series.Clear(); flexChart1.ChartType = C1.Chart.ChartType.Line;

flexChart1.BindingX = "Date"; flexChart1.Series.Add(new Series() { Name = "Series1", Binding = "Series1" });

FlexChart for WinForms  

126 Copyright © GrapeCity, Inc. All rights reserved.         

Page 128: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.DataSource = pointsList.ToArray();

flexChart1.EndUpdate(); }

class DataItem { public int Series1 { get; set; } public DateTime Date { get; set; } }

private void flexChart1_Rendered(object sender, RenderEventArgs e) { SetupRangeSelector(); } }}

範囲セレクタ範囲セレクタ

チャートをスクロールする方法としては従来からスクロールバーがありますが、範囲セレクタはより新しい手法として、選択した

範囲がデータ全体のどの位置にあるかを視覚化できるようにします。

FlexChart の範囲セレクタでは、下限値スクロールボックスと上限値スクロールボックスを使用して数値データの範囲を選択で

きます。これらのスクロールボックスは、範囲の開始値と終了値を定義します。範囲バーでスクロールボックスを左(または下)

にドラッグすると値が減少し、右(または上)にドラッグすると値が増加します。

範囲セレクタを追加するには、RangeSelector クラスのインスタンスを作成します。このインスタンスは、FlexChart クラス型

のパラメータを受け取ります。C1RangeSelector クラスは、C1RangeSlider クラスを継承します。C1RangeSlider で提供され

る LowerValue プロパティと UpperValue プロパティを使用して、範囲セレクタの下限値と上限値をそれぞれ設定できます。

LowerValue プロパティと UpperValue プロパティのいずれかが変更されると、ValueChanged イベントが発生します。

  FlexChart for WinForms

127 Copyright © GrapeCity, Inc. All rights reserved.         

Page 129: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

範囲セレクタを水平方向または垂直方向に設定するには、Orientation プロパティを使用します。このプロパティが変更され

ると、OrientationChanged イベントが発生します。

次に、実装方法を示すコードスニペットを示します。

Visual Basic

Private XRangeSelector As C1.Win.Chart.Interaction.RangeSelector

Public Sub New() InitializeComponent() SetupCharts() End Sub

Public Sub SetupRangeSelector() If XRangeSelector IsNot Nothing Then Return End If

' X-RangeSelectorを追加します XRangeSelector = New C1.Win.Chart.Interaction.RangeSelector(FlexChart2)

AddHandler XRangeSelector.ValueChanged, AddressOf XRangeSelector_ValueChanged End Sub

Private Sub XRangeSelector_ValueChanged(sender As Object, e As EventArgs) FlexChart1.AxisX.Min = XRangeSelector.LowerValue FlexChart1.AxisX.Max = XRangeSelector.UpperValue End Sub

Private Sub SetupCharts() Dim rnd = New Random() Dim pointsCount = rnd.[Next](1, 30)

Dim temperaturePoints = New List(Of DataItem)() Dim [date] As New DateTime(2016, 1, 1) While [date].Year = 2016 Dim newItem = New DataItem() newItem.[Date] = [date] If [date].Month <= 8 Then newItem.MaxTemp = rnd.[Next](3 * [date].Month, 4 * [date].Month) Else newItem.MaxTemp = rnd.[Next]((13 - [date].Month - 2) * [date].Month, (13 - [date].Month) * [date].Month) End If newItem.MinTemp = newItem.MaxTemp - rnd.[Next](6, 8) newItem.MeanTemp = (newItem.MaxTemp + newItem.MinTemp) / 2 newItem.MeanPressure = rnd.[Next](980, 1050) newItem.Presipitation = If(rnd.[Next](5) = 1, rnd.[Next](0, 20), 0) temperaturePoints.Add(newItem) [date] = [date].AddDays(1) End While

'flexChart1を設定します FlexChart1.BeginUpdate() FlexChart1.ChartType = C1.Chart.ChartType.Line FlexChart1.Series.Clear()

FlexChart1.BindingX = "Date" FlexChart1.Series.Add(New Series() With { .Name = "MeanTemp", .Binding = "MeanTemp" })

FlexChart for WinForms  

128 Copyright © GrapeCity, Inc. All rights reserved.         

Page 130: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart1.Series.Add(New Series() With { .Name = "MaxTemp", .Binding = "MaxTemp" }) FlexChart1.Series.Add(New Series() With { .Name = "MinTemp", .Binding = "MinTemp" }) FlexChart1.DataSource = temperaturePoints.ToArray() FlexChart1.EndUpdate()

'flexChart2を設定します FlexChart2.BeginUpdate() FlexChart2.ChartType = C1.Chart.ChartType.Line FlexChart2.Series.Clear()

FlexChart2.BindingX = "Date" FlexChart2.Series.Add(New Series() With { .Name = "MeanTemp", .Binding = "MeanTemp" }) FlexChart2.DataSource = temperaturePoints.ToArray() FlexChart2.EndUpdate() End Sub

Class DataItem Public Property MaxTemp() As Integer Get Return m_MaxTemp End Get Set m_MaxTemp = Value End Set End Property Private m_MaxTemp As Integer Public Property MinTemp() As Integer Get Return m_MinTemp End Get Set m_MinTemp = Value End Set End Property Private m_MinTemp As Integer Public Property MeanTemp() As Integer Get Return m_MeanTemp End Get Set m_MeanTemp = Value End Set End Property Private m_MeanTemp As Integer Public Property MeanPressure() As Integer Get Return m_MeanPressure End Get Set m_MeanPressure = Value End Set End Property Private m_MeanPressure As Integer Public Property Presipitation() As Integer

  FlexChart for WinForms

129 Copyright © GrapeCity, Inc. All rights reserved.         

Page 131: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Get Return m_Presipitation End Get Set m_Presipitation = Value End Set End Property Private m_Presipitation As Integer Public Property [Date]() As DateTime Get Return m_Date End Get Set m_Date = Value End Set End Property Private m_Date As DateTime End Class

Private Sub FlexChart2_Rendered(sender As Object, e As RenderEventArgs) SetupRangeSelector() FlexChart1_Rendered(sender, e) End Sub

Private Sub FlexChart1_Rendered(sender As Object, e As RenderEventArgs) Dim flexChart = TryCast(sender, FlexChart) If flexChart Is Nothing Then Return End If

Using pen = New Pen(New SolidBrush(Color.LightGray)) Dim rect = New Rectangle(CInt(flexChart.PlotRect.X), CInt(flexChart.PlotRect.Y), CInt(flexChart.PlotRect.Width), CInt(flexChart.PlotRect.Height)) e.Graphics.DrawRectangle(pen, rect) End Using End Sub

C#

C1.Win.Chart.Interaction.RangeSelector XRangeSelector;

public Form1(){ InitializeComponent(); SetupCharts();}

public void SetupRangeSelector(){ if (XRangeSelector != null) return;

// X-RangeSelectorを追加します XRangeSelector = new C1.Win.Chart.Interaction.RangeSelector(flexChart2);

XRangeSelector.ValueChanged += XRangeSelector_ValueChanged;}

void XRangeSelector_ValueChanged(object sender, EventArgs e){

FlexChart for WinForms  

130 Copyright © GrapeCity, Inc. All rights reserved.         

Page 132: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.AxisX.Min = XRangeSelector.LowerValue; flexChart1.AxisX.Max = XRangeSelector.UpperValue;

}

void SetupCharts(){ var rnd = new Random(); var pointsCount = rnd.Next(1, 30);

var temperaturePoints = new List<DataItem>(); for (DateTime date = new DateTime(2016, 1, 1); date.Year == 2016; date = date.AddDays(1)) { var newItem = new DataItem(); newItem.Date = date; if (date.Month <= 8) newItem.MaxTemp = rnd.Next(3 * date.Month, 4 * date.Month); else newItem.MaxTemp = rnd.Next((13 - date.Month - 2) * date.Month, (13 - date.Month) * date.Month); newItem.MinTemp = newItem.MaxTemp - rnd.Next(6, 8); newItem.MeanTemp = (newItem.MaxTemp + newItem.MinTemp) / 2; newItem.MeanPressure = rnd.Next(980, 1050); newItem.Presipitation = rnd.Next(5) == 1 ? rnd.Next(0, 20) : 0; temperaturePoints.Add(newItem); }

//flexChart1を設定します flexChart1.BeginUpdate(); flexChart1.ChartType = C1.Chart.ChartType.Line; flexChart1.Series.Clear();

flexChart1.BindingX = "Date"; flexChart1.Series.Add(new Series() { Name = "平均温度", Binding = "MeanTemp" }); flexChart1.Series.Add(new Series() { Name = "最高気温", Binding = "MaxTemp" }); flexChart1.Series.Add(new Series() { Name = "最低気温", Binding = "MinTemp" }); flexChart1.DataSource = temperaturePoints.ToArray(); flexChart1.EndUpdate();

//flexChart2を設定します flexChart2.BeginUpdate(); flexChart2.ChartType = C1.Chart.ChartType.Line; flexChart2.Series.Clear();

flexChart2.BindingX = "Date"; flexChart2.Series.Add(new Series() { Name = "MeanTemp", Binding = "MeanTemp" }); flexChart2.DataSource = temperaturePoints.ToArray(); flexChart2.EndUpdate();}

class DataItem{ public int MaxTemp { get; set; } public int MinTemp { get; set; } public int MeanTemp { get; set; } public int MeanPressure { get; set; } public int Presipitation { get; set; }

  FlexChart for WinForms

131 Copyright © GrapeCity, Inc. All rights reserved.         

Page 133: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

public DateTime Date { get; set; }}

private void flexChart2_Rendered(object sender, RenderEventArgs e){ SetupRangeSelector(); flexChart1_Rendered(sender, e);}

private void flexChart1_Rendered(object sender, RenderEventArgs e){ var flexChart = (sender as FlexChart); if (flexChart == null) return;

using (var pen = new Pen(new SolidBrush(Color.LightGray))) { var rect = new Rectangle( (int)flexChart.PlotRect.X, (int)flexChart.PlotRect.Y, (int)flexChart.PlotRect.Width, (int)flexChart.PlotRect.Height ); e.Graphics.DrawRectangle(pen, rect); }}

ラインマーカーラインマーカー

ラインマーカーは、プロット上で水平線または垂直線をドラッグすることで、チャート内の特定の位置の正確なデータ値を添付

ラベルを使用して表示します。折れ線グラフや面グラフに多数のデータがある場合や、複数の系列のデータを 1 つのラベルに

表示したい場合などに便利です。Drag、Move などの組み込み操作を使用すると、ラインマーカーをドラッグしてチャート内の

データポイントをより正確に選択できます。

以下の画像は、チャートの特定の位置のデータ値を表示する LineMarker を示しています。

FlexChart for WinForms  

132 Copyright © GrapeCity, Inc. All rights reserved.         

Page 134: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart でラインマーカーを作成して使用するには、LineMarker クラスのインスタンスを作成します. インスタンスの作成す

る際に、パラメータとして FlexChart 型のオブジェクトを渡します。LineMarker が提供する Lines プロパティを使用して、

LineMarker ラインの表示/非表示を設定します。Lines プロパティは、LineMarkerLines 列挙に含まれる次の値を受け取りま

す。

Both:垂直線と水平線の両方を表示します。

Horizontal:水平線を表示します。

Vertical:垂直線を表示します。

None:線を表示しません。

LineMarker クラスでは、ラインマーカーの配置を設定するための Alignment プロパティも提供されています。さら

に、Interaction プロパティを LineMarkerInteraction 列挙に含まれる次の値のいずれかに設定して、ラインマーカーの操

作モードを設定することができます。

Drag:ユーザーが線をドラッグすると、ラインマーカーが移動します。

Move(デフォルト):ラインマーカーはポインタと共に移動します。

None:ユーザーがクリックして位置を指定します。

Interaction プロパティを Drag に設定する場合は、DragContent プロパティと DragLines プロパティを設定して、ラインマー

カーの線にリンクされた内容や値がドラッグ可能かどうかを指定する必要があります。さらに、LineMarker クラスには、ライン

マーカーのテキストコンテンツをカスタマイズするために使用できる Content プロパティがあります。Furthermore, you canset the initial position of the line marker relative to the plot area with the help of VerticalPosition andHorizontalPostion properties. The acceptable range for these properties is [0,1].

以下のコードスニペットは、前述のクラスとプロパティを実装します。

Visual Basic

Imports System.Windows.FormsImports C1.Win.Chart.InteractionImports System.DrawingImports C1.Win.ChartImports System.Collections.Generic

  FlexChart for WinForms

133 Copyright © GrapeCity, Inc. All rights reserved.         

Page 135: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Partial Public Class Form1 Inherits Form Private lineMarker As C1.Win.Chart.Interaction.LineMarker

Public Sub New() InitializeComponent() SetupChart() End Sub

Private Sub SetupChart()

Dim rnd = New Random() Dim pointsCount = rnd.[Next](1, 30)

Dim pointsList = New List(Of DataItem)() Dim [date] As New DateTime(DateTime.Now.Year - 1, 1, 1) While [date].Month < DateTime.Now.Month + 2 pointsList.Add(New DataItem() With { .[Date] = [date], .Input = rnd.[Next](1, 9), .Output = rnd.[Next](10, 19) }) [date] = [date].AddDays(1) End While

FlexChart1.BeginUpdate() FlexChart1.Series.Clear() FlexChart1.ChartType = C1.Chart.ChartType.Line

FlexChart1.BindingX = "Date"

Dim outputSerie = New C1.Win.Chart.Series() With { .Name = "出力", .Binding = "Output" } outputSerie.Style.StrokeColor = Color.FromArgb(255, 251, 178, 88) FlexChart1.Series.Add(outputSerie)

Dim inputSerie = New C1.Win.Chart.Series() With { .Name = "入力", .Binding = "Input" } inputSerie.Style.StrokeColor = Color.FromArgb(255, 136, 189, 230) FlexChart1.Series.Add(inputSerie)

FlexChart1.DataSource = pointsList.ToArray()

FlexChart1.EndUpdate()

AddHandler FlexChart1.Rendered, AddressOf flexChart1_Rendered End Sub

Private Sub flexChart1_Rendered(sender As Object, e As RenderEventArgs) If lineMarker Is Nothing Then Dim lineMarker As New C1.Win.Chart.Interaction.LineMarker(FlexChart1) lineMarker.LineWidth = 2 lineMarker.DragThreshold = 10 lineMarker.Content = "出力={Output}\n入力={Input}";}" lineMarker.Alignment = LineMarkerAlignment.Auto lineMarker.Interaction = LineMarkerInteraction.Move

FlexChart for WinForms  

134 Copyright © GrapeCity, Inc. All rights reserved.         

Page 136: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

lineMarker.Lines = LineMarkerLines.Vertical End If End Sub

Private Class DataItem Public Property Input() As Integer Get Return m_Input End Get Set m_Input = Value End Set End Property Private m_Input As Integer Public Property Output() As Integer Get Return m_Output End Get Set m_Output = Value End Set End Property Private m_Output As Integer Public Property [Date]() As DateTime Get Return m_Date End Get Set m_Date = Value End Set End Property Private m_Date As DateTime End ClassEnd Class

C#

using System;using System.Windows.Forms;using C1.Win.Chart.Interaction;using System.Drawing;using C1.Win.Chart;using System.Collections.Generic;

namespace LineMarker{ public partial class Form1 : Form { C1.Win.Chart.Interaction.LineMarker lineMarker;

public Form1() { InitializeComponent(); SetupChart(); }

void SetupChart() {

var rnd = new Random(); var pointsCount = rnd.Next(1, 30);

var pointsList = new List<DataItem>();

  FlexChart for WinForms

135 Copyright © GrapeCity, Inc. All rights reserved.         

Page 137: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

for (DateTime date = new DateTime(DateTime.Now.Year - 1, 1, 1); date.Month < DateTime.Now.Month + 2; date = date.AddDays(1)) { pointsList.Add(new DataItem() { Date = date, Input = rnd.Next(1, 9), Output = rnd.Next(10, 19) }); }

flexChart1.BeginUpdate(); flexChart1.Series.Clear(); flexChart1.ChartType = C1.Chart.ChartType.Line;

flexChart1.BindingX = "Date";

var outputSerie = new C1.Win.Chart.Series() { Name = "出力", Binding = "Output" }; outputSerie.Style.StrokeColor = Color.FromArgb(255, 251, 178, 88); flexChart1.Series.Add(outputSerie);

var inputSerie = new C1.Win.Chart.Series() { Name = "入力", Binding = "Input" }; inputSerie.Style.StrokeColor = Color.FromArgb(255, 136, 189, 230); flexChart1.Series.Add(inputSerie);

flexChart1.DataSource = pointsList.ToArray();

flexChart1.EndUpdate();

flexChart1.Rendered += flexChart1_Rendered; }

void flexChart1_Rendered(object sender, RenderEventArgs e) { if (lineMarker == null) { C1.Win.Chart.Interaction.LineMarker lineMarker = new C1.Win.Chart.Interaction.LineMarker(flexChart1); lineMarker.LineWidth = 2; lineMarker.DragThreshold = 10; lineMarker.Content = "出力={Output}\n入力={Input}"; lineMarker.Alignment = LineMarkerAlignment.Auto; lineMarker.Interaction = LineMarkerInteraction.Move; lineMarker.Lines = LineMarkerLines.Vertical; } }

class DataItem { public int Input { get; set; } public int Output { get; set; } public DateTime Date { get; set; } }

}}

ヒットテストヒットテスト

FlexChart for WinForms  

136 Copyright © GrapeCity, Inc. All rights reserved.         

Page 138: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart は、ヒットテストをサポートし、実行時にコントロールの特定のポイントの情報を取得できます。ポイントされた座標に

関する情報を再利用して、チャートデータをドリルダウンしたり、アラートを設定するなどのユーザー操作機能を実装できます。

FlexChart は、HitTest() メソッドを使用したヒットテストをサポートします。このメソッドには 2 つのオーバーロードメソッドがあり

ます。一方はパラメータとしてポインタの位置を受け取り、もう一方はポインタの位置、MeasureOption、コントロール内の

seriesIndex 値を受け取ります。そして、ポインタ位置に関する次の情報を提供する HitTestInfo クラスのオブジェクトを返しま

す。

ポインタの位置にあるチャート要素

ポインタがプロット領域内にある場合は、チャート内の最も近いデータポイントからポインタ位置までの距離。ポインタ

がプロット領域外にある場合は、距離として Double.Nan が返されます。

この距離値は、使用する MeasureOption によって異なります。たとえば、MeasureOption.X の場合は、X 軸に沿った

距離だけが計算されます。

最も近いデータポイントに対応するデータオブジェクト

最も近いデータポイントのインデックス

最も近いデータポイントが属する系列名

最も近いデータポイントの X 値最も近いデータポイントの Y 値

HitTest() メソッドに渡されるマウス座標はピクセル単位で、フォームの左上隅を基準とします。

この例では、FlexChart コントロールの MouseMove イベントで HitTest() メソッドが呼び出されます。ここで、ポインタ位置

のポイント座標がパラメータとして HitTest() メソッドに渡されます。

FlexChart でヒットテストを有効にするには、次の手順に従います。

1. データ連結データ連結 FlexChart コントロールの追加コントロールの追加

2. マウスイベントのサブスクライブマウスイベントのサブスクライブ

3. マウスイベントハンドラでのチャートのマウスイベントハンドラでのチャートの HitTest メソッドの呼び出しメソッドの呼び出し

4. HitTestInfo オブジェクトから返された情報の使用オブジェクトから返された情報の使用

先頭に戻る先頭に戻る

1. データ連結データ連結 FlexChart コントロールの追加コントロールの追加

  FlexChart for WinForms

137 Copyright © GrapeCity, Inc. All rights reserved.         

Page 139: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

以下のコードスニペットに示すように、アプリケーションに FlexChart コントロールのインスタンスを追加し、適切なデー

タソースに連結します。

C#const int SERIES_NUMBER = 2;void SetupChart(){ flexChart2.BeginUpdate(); flexChart2.Series.Clear();

// サンプルデータを作成してチャートに追加します var offset = 0; for (int i = 0; i < SERIES_NUMBER; i++) { Series tbs = new Series() { Name = "Series " + i.ToString(), DataSource = DataCreator.Create(x => Math.Sin(x + offset), 0, 60, 7), Binding = "YVals", BindingX = "XVals" };

flexChart2.ChartType = C1.Chart.ChartType.SplineSymbols;

flexChart2.Series.Add(tbs); offset += 5; } flexChart2.EndUpdate();}

先頭に戻る先頭に戻る

2. マウスイベントのサブスクライブマウスイベントのサブスクライブ

以下のコードスニペットに示すように、ポインタ座標を取得するためにマウスイベントをサブスクライブします。

C#flexChart2.MouseDoubleClick += flexChart2_MouseDoubleClick;

先頭に戻る先頭に戻る

3. マウスイベントハンドラでのチャートのマウスイベントハンドラでのチャートの HitTest メソッドの呼び出しメソッドの呼び出し

以下のコードスニペットに示すように、対応するイベントハンドラで、HitTest() メソッドを呼び出し、取得したマウスポイ

ンタ座標を渡します。

C#private void flexChart2_MouseDoubleClick(object sender, MouseEventArgs e){ // マウスオーバーまたはタッチ時のチャート要素に関する情報を表示します。 var ht = flexChart2.HitTest(e.Location);

先頭に戻る先頭に戻る

4. HitTestInfo オブジェクトから返された情報の使用オブジェクトから返された情報の使用

次に、HitTestInfo オブジェクトで返されたマウスポインタの位置に関する情報を再利用できます。たとえば、以下の

コードスニペットでは、HitTestInfo オブジェクトで返された値が文字列に変換され、TextBlock に表示されます。

C# ... var result = new StringBuilder();

FlexChart for WinForms  

138 Copyright © GrapeCity, Inc. All rights reserved.         

Page 140: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

result.AppendLine(string.Format("チャート要素:{0}", ht.ChartElement)); if (ht.Series != null) result.AppendLine(string.Format("系列名:{0}", ht.Series.Name));

//result.AppendLine(String.Format("Item", ht.Item)); if (ht.PointIndex > 0) result.AppendLine(string.Format("ポイントインデックス={0:0}", ht.PointIndex)); if (ht.Distance > 0) result.AppendLine(string.Format("距離={0:0}", ht.Distance)); if (ht.X != null) result.AppendLine(string.Format("X={0:0.00}", ht.X)); if (ht.Y != null) result.AppendLine(string.Format("Y={0:0.00}", ht.Y)); lblPosition.Text = result.ToString();}

先頭に戻る先頭に戻る

アニメーションアニメーション

FlexChart allows you to control how the animation is applied to each series and series elements. It allows you toenable chart animation effects through a combination of different properties available in the FlexChart class. Theseproperties allow you to apply duration, delay and an easing function for each animation. The animation effects areapplied in one of the two scenarios, either while loading the chart for the first time or while the chart is redrawn aftermodifications.

The FlexChart control supports two basic scenarios for animation.

LoadUpdate

Load

Implement animation when the data is first loaded into the chart, example when a new series is added to theFlexChart, you can apply animation properties. The following image shows how animation works while loadingthe FlexChart control.

Use the following code to implement animation while loading the FlexChart control.

  FlexChart for WinForms

139 Copyright © GrapeCity, Inc. All rights reserved.         

Page 141: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C#

// アニメーション

flexChart1.AnimationSettings = C1.Chart.AnimationSettings.Load;flexChart1.AnimationUpdate.Easing = C1.Chart.Easing.Linear;flexChart1.AnimationUpdate.Duration = 500;flexChart1.AnimationLoad.Type = C1.Chart.AnimationType.Series;

Update

Implement animation when existing data is modified in the chart, for example when a new series is added or removedfrom the FlexChart control, you can apply animation properties. The following image shows how animation workswhile updating the FlexChart control.

Use the following code to implement animation while loading the FlexChart control.

C#

// アニメーション

flexChart1.AnimationSettings = C1.Chart.AnimationSettings.Update;flexChart1.AnimationUpdate.Easing = C1.Chart.Easing.Linear;flexChart1.AnimationUpdate.Duration = 500;flexChart1.AnimationUpdate.Type = C1.Chart.AnimationType.All;

private void button1_Click(object sender, EventArgs e){ // FlexChartを更新します

flexChart1.BeginUpdate();

FlexChart for WinForms  

140 Copyright © GrapeCity, Inc. All rights reserved.         

Page 142: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.Series.RemoveAt(0); flexChart1.EndUpdate();}

Every animation scenario has its own set of options that can be set independently in the FlexChart control. Theseoptions include various properties describing the corresponding animation.

To implement animation in the FlexChart control, you need make use of the following properties.

1. AnimationSettings -This property allows the user to apply settings for the animation. It allows the user tospecify that when to apply animation in the FlexChart control. This property accepts values fromthe AnimationSettings enumeration provided by the FlexChart class. The AnimationSettings enumeration hasspecial flags to control axes animation (smooth transition) so that you can enable or disable smooth axistransition for loading or updating data.

2. AnimationOptions - The AnimationLoad and AnimationUpdate properties includes the following options.

1. Duration: This property allows you to set the duration of animation in the FlexChart control. Thisproperty accepts an integer value which defines duration in milliseconds.

2. Easing: This property allows the user to set different type of easing functions on the FlexChart control.This property accepts values from the Easing enumeration provided by the C1.Chart namespace.

3. Type: This property allows you to set the animation type on the FlexChart control. This property acceptsthe following values from the AnimationType enumeration provided by the C1.Chart namespace.

All - All plot elements animate at once from the bottom of the plot area.Series - Each series animates one at a time from the bottom of the plot area.Points - The plot elements appear one at a time from left to right.

FlexChartデザイナーデザイナー

Chart Designer refers to a run-time designer that empowers the end-user to customize the chart by changing the chart properties while visualizing the same.Such designers come really handy in applications such as dashboard designers which require end-user to customize the chart at run-time as perrequirement.

FlexChart Designer is a compact and responsive designer which appears on clicking the chart elements at run-time and provides a user interface to changevarious settings related to Chart, Data, Header, Footer, Legend, X-Axis, Y-Axis and Data Labels.

The chart elements such as plot area, x-axis, y-axis, legend, header and footer get highlighted as the user moves the mouse cursor over the chart. TheChartDesigner appears when any of these elements is clicked for the first time and displays the property list of the corresponding chart element. Thisproperty list in the designer keeps on changing depending on the element selected in the chart area. You can also select the desired chart element from thedrop-down menu available on the top-left corner of the designer. The table below describes each of these options provided by the FlexChart Designer drop-down menu.

Drop-down Options Descriptions

Chart Displays the properties related to appearance of the chart such as BackColor, ForeColor, PlotColor, Font andStacking. It also provides the ChartType property that lets you change the chart type to any of the basic charts atrun-time. This property is not displayed in the case of charts such as pie chart, treemap or sunburst chart.

Data Displays all the data fields of the chart. It lets you bind the data simply by dragging and dropping data fields on to X-axis and Y-axis sections on the right-hand-side of the window. You can easily create multiple series or multiple piecharts by using this option.

Header Lets you customize the chart header. Using this option, you can add, remove, edit or style the header content throughproperties such as Content, Color, Font, Border, BorderFill etc.

Footer Lets you customize the chart footer. Using this option, you can add, remove, edit or style the footer content throughproperties such as Content, Color, Font, Border, BorderFill etc.

Legend Allows you to specify the legend related settings of the chart. You can choose to hide, display or style the chart legendby using the properties such as Title, Position, ForeColor, Font etc.

X-Axis Displays the properties related to the X-Axis of chart like Title, Labels, LabelAngle, Min, Max, MajorTicks etc. Thisoption does not appear in the drop-down menu list in the case of charts such as pie chart, treemap or a sunburstchart.

  FlexChart for WinForms

141 Copyright © GrapeCity, Inc. All rights reserved.         

Page 143: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Y-Axis Displays the properties related to the Y-Axis of chart like Title, Labels, LabelAngle, Min, Max, MajorTicks etc. Thisoption does not appear in the drop-down menu list in the case of charts such as pie chart, treemap or a sunburstchart.

Data Label Lets you display, hide, position or style the data point values on charts. Some of the data label related propertiesprovided by the designer are Content, Color, Font, Connecting Line, Position etc.

Invoke the FlexChart DesignerIn FlexChart, the FlexChart Designer is represented by the ChartDesigner class provided by C1.Win.Chart.Designer namespace of theC1.Win.FlexChart.Designer assembly. You can easily invoke the designer for a particular FlexChart by creating an instance of the ChartDesigner class andpassing the FlexChart control as a parameter to this ChartDesigner constructor.

Note that source code of the FlexChart Designer is available in the form of product sample named ChartDesigner so that you can customize it as peryour application requirements. The ChartDesigner sample is located at \Documents\ComponentOneSamples\WinForms\v4.5.2\C1FlexChart\CS\ChartDesigner on your system, if you have installed the samples while installing WinForms Edition usingComponentOneC1ControlPanel.exe.

CS VB

設計時サポート設計時サポート

FlexChart には、オブジェクトモデルの操作を簡略化し、豊富な設計時サポートを提供するコレクションエディタがあります。コ

レクションエディタを使用すると、さまざまな便利なプロパティに 1 つの場所からアクセスできます。また、プロパティウィンドウ

でプロパティをドリルダウンする必要がまったくなくなります。

コレクションエディタの詳細については、次のセクションを参照してください。

コレクションエディタ

コレクションエディタコレクションエディタ

FlexChart には、設計時にさまざまなチャート要素にプロパティを適用するためのコレクションエディタが数多く用意されていま

す。

このコントロールは、以下で説明するコレクションエディタを提供します。

系列コレクションエディタ

系列コレクションエディタ系列コレクションエディタ

系列コレクションエディタを使用して、系列を追加または削除したり、系列のプロパティを変更することができます。

系列系列オブジェクトの詳細については、「系列」を参照してください。

系列コレクションエディタへのアクセス系列コレクションエディタへのアクセス

1. FlexChart コントロールを右クリックします。

2. コンテキストメニューから[プロパティ][プロパティ]を選択します。

3. プロパティプロパティ ウィンドウで、[系列][系列]プロパティの横にある省略符省略符 ボタンをクリックします。

系列コレクションエディタ系列コレクションエディタ が次のように表示されます。

FlexChart for WinForms  

142 Copyright © GrapeCity, Inc. All rights reserved.         

Page 144: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

系列コレクションエディタから利用できるプロパティを次の表にリストします。

プロパティプロパティ 説明説明

DataSource 系列データを含むオブジェクトのコレクションを設定します。

ChartType 系列のチャートタイプを設定します。

Name 系列の名前を設定します。

Visibility 系列の表示/非表示を設定します。

FlexChart の要素の要素

チャートの要素をカスタマイズして、見栄えがよく本格的な外観のチャートを作成できます。

FlexChart は、軸、凡例、およびタイトルで構成されています。これらの要素については、既に「FlexChart の基本」で簡単に説

明しました。

以下のセクションでは、FlexChart のこれらの要素のカスタマイズに焦点を当てます。

FlexChart の軸

FlexChart の軸ラベル

FlexChart の注釈

FlexChart の凡例

FlexChart の系列

FlexChart のデータラベル

複数のプロット領域

FlexChart の軸の軸

  FlexChart for WinForms

143 Copyright © GrapeCity, Inc. All rights reserved.         

Page 145: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

チャートには、一般に、データを測定および分類するために、垂直軸(Y 軸)と水平軸(X 軸)の 2 つの軸があります。垂直軸は

値軸とも呼ばれ、水平軸はカテゴリ軸とも呼ばれます。

どのチャートの軸も同じ方法で描画されるわけではありません。たとえば、散布図やバブルチャートでは、垂直軸には数値が

表示され、水平軸には離散的または連続的な数値データが表示されます。リアルタイムの例として、さまざまな年齢層別のイ

ンターネット利用率(週あたり時間数)をプロットする場合を考えます。この場合、2 つの項目はどちらも数値で、X 軸と Y 軸の

数値に対応してデータポイントがプロットされます。

折れ線グラフ、縦棒グラフ、横棒グラフ、面グラフなど、他のチャートは、垂直軸に数値を表示し、水平軸にカテゴリを表示しま

す。リアルタイムの例として、さまざまな地域別のインターネット利用率(週あたり時間数)をプロットする場合を考えます。この

場合は、テキストで表されるカテゴリとして地域が水平軸にプロットされます。

ただし、FlexChart は、横棒グラフ、折れ線グラフ、面グラフの場合でも、X 軸と Y 軸の両方に数値を表示できる高い柔軟性を

有しています。また、異なるタイプの値を表示する場合に、追加の設定を行う必要がありません。

FlexChart の軸は、Axis クラスで表されます。FlexChart の主軸には、AxisX プロパティと AxisY プロパティを使用してアクセ

スできます。

第 1 X 軸は下部に水平方向にレンダリングされ、第 1 Y 軸は左側に垂直方向にレンダリングされます。ただし、主軸をカスタ

マイズしたり、複数の軸を使用することで、この規則にも例外を設けることができます。

FlexChart を使用する際、目盛りマークや軸ラベルの外観を変更できます。軸の値間の単位数を指定することで、X 軸と Y 軸の軸ラベルの数を減らすことができます。さらに、ラベルの配置や方向を変更したり、表示される数値の書式を変更することが

できます。必要に応じて、軸のスタイルを設定したり、位置を変更することもできます。

以下のセクションでは、FlexChart の軸に対して行うことができるさまざまなカスタマイズや変更について説明します。

軸の位置

軸のスタイル設定

軸のタイトル

軸の目盛りマーク

軸のグリッド線

軸の範囲

軸のスケーリング

軸の反転

軸の連結

複数の軸

軸の位置軸の位置

FlexChart では、Position プロパティを使用して、軸の位置を変更できます。

軸の Position プロパティは、Position 列挙の次の値に設定できます。

プロパティプロパティ 説明説明

Position.Auto 項目を自動的に配置します。

Position.Bottom 項目を下に配置します。

Position.Center 項目を中央に配置します。

Position.Left 項目を左に配置します。

Position.None 項目を非表示にします。

Position.Right 項目を右に配置します。

Position.Top 項目を上に配置します。

次にサンプルコードを示します。

FlexChart for WinForms  

144 Copyright © GrapeCity, Inc. All rights reserved.         

Page 146: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Visual Basic

' これにより、上部でX軸が水平方向に描画されますFlexChart1.AxisX.Position = C1.Chart.Position.Top

' これにより、右側でY軸が垂直方向に描画されますFlexChart1.AxisY.Position = C1.Chart.Position.Right

C#

// これにより、上部でX軸が水平方向に描画されますflexChart1.AxisX.Position = C1.Chart.Position.Top;

// これにより、右側でY軸が垂直方向に描画されますflexChart1.AxisY.Position = C1.Chart.Position.Right;

軸のスタイル設定軸のスタイル設定

FlexChart では、以下で説明するさまざまなプロパティを使用して、軸のスタイルを設定できます。

プロパティプロパティ 説明説明

FillColor 塗りつぶし色を設定します。

Font 要素のフォントを設定します。

StrokeColor ストローク色を設定します。

StrokeWidth ストロークの幅を設定します。

次にサンプルコードを示します。

Visual Basic

' ストロークの色を設定しますFlexChart1.AxisX.Style.StrokeColor = System.Drawing.Color.DarkGreen

  FlexChart for WinForms

145 Copyright © GrapeCity, Inc. All rights reserved.         

Page 147: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' ストロークの幅を設定しますFlexChart1.AxisX.Style.StrokeWidth = 2

C#

// ストロークの色を設定しますflexChart1.AxisX.Style.StrokeColor = System.Drawing.Color.DarkGreen;

// ストロークの幅を指定しますflexChart1.AxisX.Style.StrokeWidth = 2;

軸のタイトル軸のタイトル

チャートを作成したら、チャート内の任意の垂直軸または水平軸にタイトルを追加できます。軸のタイトルは、その軸に何が表

示されているかという情報を表示します。チャートを見ているエンドユーザーは、軸のタイトルから何のデータであるかを理解で

きます。ただし、円グラフなどの軸のないチャートに軸タイトルを追加することはできません。

FlexChart では、文字列を受け取る Title プロパティを使用して軸タイトルを設定できます。

次のコードスニペットを参照してください。

Visual Basic

' X軸のタイトルを設定しますFlexChart1.AxisX.Title = "マンスリーレビュー"

' Y軸のタイトルを設定しますFlexChart1.AxisY.Title = "平均の負荷"

C#

// X軸のタイトルを設定しますflexChart1.AxisX.Title = "マンスリーレビュー";

// Y軸のタイトルを設定しますflexChart1.AxisY.Title = "平均の負荷";

FlexChart for WinForms  

146 Copyright © GrapeCity, Inc. All rights reserved.         

Page 148: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸の目盛りマーク軸の目盛りマーク

軸の目盛りマークは、ラベルが軸上にプロットされるポイントであり、軸上の項目の位置を示す小さなマークです。また、軸の

特定のプロパティによって決定される値に基づいて、軸を等間隔に分割します。グリッド線の位置も、目盛りマークの位置に

よって制御されます。

軸の目盛りマークについては、基本的に、大目盛りマークと小目盛りマークの 2 種類がレンダリングされます。大目盛りマーク

は、軸が間隔グリッド線と交差する場所に自動的にレンダリングされます。小目盛りマークは、大目盛りマークの間にレンダリ

ングされます。

デフォルトの FlexChart は、X 軸には大目盛りマークを設定し、Y 軸には目盛りマークなしを設定します。

ただし、MajorTickMarks プロパティと MinorTickMarks プロパティを使用すると、それぞれ大目盛りマークと小目盛りマー

クの位置を操作できます。

どちらのプロパティも、次に示す TickMark 列挙値のいずれかに設定できます。

値値 説明説明

TickMark.Cross 軸に交差する目盛りマークを表示します。

TickMark.Inside 目盛りマークをプロットの内側に表示します。

TickMark.None 目盛りマークを表示しません。

TickMark.Outside 目盛りマークをプロットの外側に表示します。

次のコードサンプルを参照してください。

Visual Basic

' X軸とY軸の大目盛りマークを設定しますFlexChart1.AxisX.MajorTickMarks = C1.Chart.TickMark.InsideFlexChart1.AxisY.MajorTickMarks = C1.Chart.TickMark.Inside

' X軸とY軸の小目盛りマークを設定しますFlexChart1.AxisX.MinorTickMarks = C1.Chart.TickMark.InsideFlexChart1.AxisY.MinorTickMarks = C1.Chart.TickMark.Inside

  FlexChart for WinForms

147 Copyright © GrapeCity, Inc. All rights reserved.         

Page 149: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C#

// X軸とY軸の大目盛りマークを設定しますflexChart1.AxisX.MajorTickMarks = C1.Chart.TickMark.Inside;flexChart1.AxisY.MajorTickMarks = C1.Chart.TickMark.Inside;

// X軸とY軸の小目盛りマークを設定しますflexChart1.AxisX.MinorTickMarks = C1.Chart.TickMark.Inside;flexChart1.AxisY.MinorTickMarks = C1.Chart.TickMark.Inside;

軸のグリッド線軸のグリッド線

軸のグリッド線は、垂直軸または水平軸からチャートのプロット領域を横切って伸びる線です。ラベル単位およびデータ単位で

表示され、軸に表示される大目盛りマークおよび小目盛りマークに揃えて配置されます。これらの補助線は格子状に表示さ

れ、特に正確な値が必要な場合に、チャートが読みやすくなります。

軸のグリッド線には、主に、主グリッド線と副グリッド線の 2 種類があります。大目盛りマークに垂直にラベル単位間隔で表示

される線が主グリッド線、小目盛りマークに垂直にデータ単位間隔で表示される線が副グリッド線です。

FlexChart の主グリッド線は MajorGrid プロパティ、副グリッド線は MinorGrid プロパティによって制御されます。また、主グ

リッド線と副グリッド線の外観は、それぞれ MajorGridStyle プロパティと MinorGridStyle プロパティによって制御されま

す。

これらのプロパティを使用して、水平および垂直方向のグリッド線を表示することができ、FlexChart のデータをさらに読みやす

くできます。

次のコードは、これらのプロパティの設定方法を示します。

Visual Basic

' X軸およびY軸の主グリッド線を設定しますFlexChart1.AxisX.MajorGrid = FalseFlexChart1.AxisY.MajorGrid = True

' グリッド線のスタイルを設定しますFlexChart1.AxisX.MajorGridStyle.StrokeColor = System.Drawing.Color.BlueFlexChart1.AxisY.MajorGridStyle.StrokeColor = System.Drawing.Color.Blue

C#

FlexChart for WinForms  

148 Copyright © GrapeCity, Inc. All rights reserved.         

Page 150: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// X軸およびY軸の主グリッド線を設定しますflexChart1.AxisX.MajorGrid = false;flexChart1.AxisY.MajorGrid = true;

// グリッド線のスタイルを設定しますflexChart1.AxisX.MajorGridStyle.StrokeColor = System.Drawing.Color.Blue;flexChart1.AxisY.MajorGridStyle.StrokeColor = System.Drawing.Color.Blue;

軸の範囲軸の範囲

チャート内に特定のデータ部分を表示する場合は、軸の範囲を固定します。軸の範囲を固定すると、データの最小値と最大値

を考慮して、各軸の範囲が決定されます。

FlexChart では、軸の Min プロパティと Max プロパティを設定して、軸の範囲を設定できます。

次のコードは、Min プロパティと Max プロパティの設定方法を示します。

Visual Basic

' X軸の最大値と最小値を設定しますFlexChart1.AxisX.Min = 3FlexChart1.AxisX.Max = 8

' Y軸の最大値と最小値を設定しますFlexChart1.AxisY.Min = 20FlexChart1.AxisY.Max = 70

C#

// X軸の最大値と最小値を設定しますflexChart1.AxisX.Min = 3;flexChart1.AxisX.Max = 8;

// Y軸の最大値と最小値を設定しますflexChart1.AxisY.Min = 20;flexChart1.AxisY.Max = 70;

  FlexChart for WinForms

149 Copyright © GrapeCity, Inc. All rights reserved.         

Page 151: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸のスケーリング軸のスケーリング

チャート内のいくつかの系列によってプロットされるデータを区別しなければならない場合があります。それらの系列のデータ

ポイントが同じ範囲にない場合がそうです。言い換えると、それらの系列の Y 軸に複数の範囲内の値が含まれる場合です。た

とえば、2 つの系列があるとします。一方の系列の Y 値が 0 ~ 100 の範囲にあり、もう一方の系列の Y 値が 0 ~ -100 の範

囲にある場合があります。また、これらの系列のデータがまったく異なるスケールを持つ場合もあります。このような場合に、こ

れらの系列の Y 値を 1 つの Y 軸に表示すると、データの解釈に混乱を来したり、データが隠れてしまう可能性があります。

FlexChart では、Min、Max、MajorUnit の各プロパティを使用して軸(主軸や追加の軸)をスケーリングすることで、このよう

な状況に対応できます。系列の 1 つの Y 値をプロットするために Y 軸を追加し、その Y 軸にこれらのプロパティを適用するこ

とで、データ表示を向上させることもできます。

軸の反転軸の反転

データセットに含まれる X または Y の値の範囲が広いと、一般的なチャート設定では、情報を効率よく表示できないことがあり

ます。軸を反転させることで、チャートデータをより効果的に提示できることもよくあります。

FlexChart の軸は、Reversed プロパティを使用して反転させることができます。

軸の Reversed プロパティを True に設定すると、軸が反転します。つまり、軸の最大値が最小値の位置に表示され、最小値

が最大値の位置に表示されます。

初期状態では、最小値は X 軸の左側、Y 軸の下端に表示されます。しかし、軸の Reversed プロパティは最大値と最小値を入

れ替えて表示します。

次にサンプルコードを示します。

Visual Basic

FlexChart1.AxisX.Reversed = TrueFlexChart1.AxisY.Reversed = True

C#

flexChart1.AxisX.Reversed = true;flexChart1.AxisY.Reversed = true;

FlexChart for WinForms  

150 Copyright © GrapeCity, Inc. All rights reserved.         

Page 152: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸の連結軸の連結

軸を連結すると、チャートの連結に基づいて軸に表示されるデフォルトの軸ラベルが上書きされます。つまり、軸の連結を使用

すると、チャートデータソース以外のデータソースの軸ラベルを表示できます。

FlexChart では、Axis クラスの DataSource プロパティを使用して、軸をデータソースに連結します。Axis クラスの

Binding プロパティを使用して、データソースの軸ラベルの値を含むフィールドを指定します。

次の図は、チャートデータソースに含まれないフィールドから Y 軸に表示されたラベルです。

  FlexChart for WinForms

151 Copyright © GrapeCity, Inc. All rights reserved.         

Page 153: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードでは、特定の年の組織の収益データを使用します。チャートデータソースには、ユーロ通貨の収益データが含まれ

ます。ユーロ通貨のラベルを米ドル通貨のラベルに置換するために、コードで Y 軸を米ドル軸ラベルのデータを含むデータ

ソースに連結します。

Visual Basic

' Y軸をデータソースにバインドします。FlexChart1.AxisY.DataSource = axisDataSource

' 軸ラベルの値を含むフィールドを指定します。FlexChart1.AxisY.Binding = "Value,Text"

C#

// Y軸をデータソースにバインドします。flexChart1.AxisY.DataSource = axisDataSource;

// 軸ラベルの値を含むフィールドを指定します。flexChart1.AxisY.Binding = "Value,Text";

複数の軸複数の軸

チャートに第 1 X 軸と第 1 Y 軸が含まれているが、軸を追加しないと要件を満たせないことがあります。たとえば、同じチャート

に値の範囲がまったく異なる系列をプロットする場合です。また、1 つのチャートに(異なるタイプの)まったく異なる値をプロット

する場合もあります。このような場合、2 つの軸だけではデータを効率よく表示できません。そのような場合は、第 2 軸を使用

すると便利です。第 2 軸を使用するには、それぞれ独自の X 軸と Y 軸を使用して 1 つのチャートに複数の系列をプロットでき

FlexChart for WinForms  

152 Copyright © GrapeCity, Inc. All rights reserved.         

Page 154: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ます。

FlexChart では、複数の軸を簡単に使用できます。要件に応じて追加の軸を作成し、系列の AxisX プロパティと AxisY プロパ

ティに同様に連結するだけです。

次のコードスニペットは、FlexChart で複数の軸を作成して使用する方法を示します。

Visual Basic

' 軸の新しいインスタンスを作成しますDim Y2 As New C1.Win.Chart.Axis()Dim Y3 As New C1.Win.Chart.Axis()

' 新しい軸をカスタマイズしますY2.Min = 0Y2.Max = 3Y2.MajorUnit = 0.5Y2.Position = C1.Chart.Position.RightY2.Title = "速さ (m/s)"

Y3.Min = 0Y3.Max = 3Y3.MajorUnit = 0.5Y3.Position = C1.Chart.Position.RightY3.Title = "速度 (m/s)"

' デフォルトの軸をカスタマイズしますFlexChart1.AxisX.Min = 5FlexChart1.AxisX.Max = 30FlexChart1.AxisX.MajorUnit = 5FlexChart1.AxisX.Title = "時間 (s)"

FlexChart1.AxisY.Min = 10FlexChart1.AxisY.Max = 60FlexChart1.AxisY.MajorUnit = 10FlexChart1.AxisY.Title = "位置 (m)"

' 新しい軸を既存の系列の軸として指定しますseries2.AxisY = Y2series3.AxisY = Y3

C#

// 軸の新しいインスタンスを作成しますC1.Win.Chart.Axis Y2 = new C1.Win.Chart.Axis();C1.Win.Chart.Axis Y3 = new C1.Win.Chart.Axis();

// 新しい軸をカスタマイズしますY2.Min = 0;Y2.Max = 3;Y2.MajorUnit = 0.5;Y2.Position = C1.Chart.Position.Right;Y2.Title = "速さ (m/s)";

Y3.Min = 0;Y3.Max = 3;Y3.MajorUnit = 0.5;Y3.Position = C1.Chart.Position.Right;Y3.Title = "速度 (m/s)";

// デフォルトの軸をカスタマイズしますflexChart1.AxisX.Min = 5;

  FlexChart for WinForms

153 Copyright © GrapeCity, Inc. All rights reserved.         

Page 155: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.AxisX.Max = 30;flexChart1.AxisX.MajorUnit = 5;flexChart1.AxisX.Title = "時間 (s)";

flexChart1.AxisY.Min = 10;flexChart1.AxisY.Max = 60;flexChart1.AxisY.MajorUnit = 10;flexChart1.AxisY.Title = "位置 (m)";

// 新しい軸を既存の系列の軸として指定しますseries2.AxisY = Y2;series3.AxisY = Y3;

軸の単位軸の単位

Axis units define at what intervals the tick marks or gridlines should be displayed along the axis. FlexChart, by default,calculates the major and minor units automatically according to the data to be plotted on the chart. However, you canchoose to change these intervals by using MajorUnit and MinorUnit property. This change impacts the valuesdisplayed on the value axis as well as the positioning of tick marks and grid lines if you choose to show them.

For example, in the FlexChart shown below, we have set the MajorUnit property to 5 and MinorUnit property to 1 onthe Y-axis. You will notice that the difference between each major tick mark is 5 and minor tick mark is 1.

FlexChart for WinForms  

154 Copyright © GrapeCity, Inc. All rights reserved.         

Page 156: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Use the following code to set the MajorUnit and MinorUnit properties.

flexChart1.AxisY.MajorUnit = 5;flexChart1.AxisY.MinorUnit = 1;

DateTime Axis Units

In case of DateTime axis, FlexChart provides you an option to set the time unit as well using the TimeUnit property.You can choose from day, month, quarter, week, and year options. This property accepts value fromthe TimeUnits enumeration. The enumeration includes the following values.

DayWeekMonthQuarterYear

For example, in order to set major unit of a value axis to 3 months, you first need to set the TimeUnit property toMonth, and then set the MajorUnit property to 3.

C#

  FlexChart for WinForms

155 Copyright © GrapeCity, Inc. All rights reserved.         

Page 157: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Use the following code to set the TimeUnit and MajorUnit properties.

flexChart1.AxisX.TimeUnit = C1.Chart.TimeUnits.Month;flexChart1.AxisX.MajorUnit = 3;

C#

FlexChart の軸ラベルの軸ラベル

軸ラベルは、軸に沿って表示される値です。デフォルトでは、軸ラベルは、軸のデータポイントおよび生成された間隔に基づい

て決定されます。

FlexChart では、以下に示すプロパティを使用して、軸ラベルの外観、書式、および配置を変更できます。

プロパティプロパティ 説明説明

Format 軸ラベルで使用する書式文字列を指定します。

LabelAlignment 軸ラベルの配置を設定します。

LabelAngle ラベルの回転角度を指定します。

Labels 軸ラベルを表示するかどうかを示します。

OverlappingLabels 重なっているラベルを処理する方法を示します。

FlexChart for WinForms  

156 Copyright © GrapeCity, Inc. All rights reserved.         

Page 158: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

以下のセクションでは、これらのプロパティの使用方法を説明します。

軸ラベルの書式

軸ラベルの回転

軸ラベルの表示/非表示

軸ラベルの重なり

Axis Grouping

軸ラベルの書式軸ラベルの書式

デフォルトでは、軸ラベルは、軸のデータポイントと生成された間隔に基づいて自動的に決定されます。しかし、Format プロ

パティを使用して、ニーズに合わせて軸ラベルを書式設定することもできます。

Format プロパティは、標準の .Net 書式文字列の値を受け取ります。

軸ラベルの回転軸ラベルの回転

水平軸に軸ラベルが密集している場合は、ラベルを回転して、外観が雑然とならないようにする必要があります。ラベルを回

転すると、多数のラベルを軸上の限られたスペースに収めることができます。

FlexChart では、LabelAngle プロパティを使用して、軸ラベルを反時計回りに回転させることができます。

次のコードを参照してください。

Visual Basic

' LabelAngleプロパティを設定しますFlexChart1.AxisX.LabelAngle = 45

C#

// LabelAngleプロパティを設定しますflexChart1.AxisX.LabelAngle = 45;

  FlexChart for WinForms

157 Copyright © GrapeCity, Inc. All rights reserved.         

Page 159: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

軸ラベルの表示軸ラベルの表示/非表示非表示

FlexChart では、Labels プロパティを使用して、軸ラベルを表示または非表示にすることができます。特定の軸の軸ラベルを

非表示にする場合は、その軸で、このプロパティを False に設定します。Labels プロパティのデフォルト値は True です。

次のコードスニペットを参照してください。

Visual Basic

' Labelsプロパティを設定しますFlexChart1.AxisY.Labels = False

C#

// Labelsプロパティを設定しますflexChart1.AxisY.Labels = false;

軸ラベルの重なり軸ラベルの重なり

In case there are less number of data points and shorter label text, axis labels are rendered without any overlapping.However, axis labels may overlap due to its long text or large numbers of data points in chart.

To manage overlapped axis labels in FlexChart, use the following options.

Trim or Wrap Axis LabelsStaggered Axis Labels

Trim or Wrap Axis Labels

In case there are overlapping labels in the chart for any reason, you can manage the same using theOverlappingLabels property.

The OverlappingLabels property accepts the following values in the OverlappingLabels enumeration:

Property Description

FlexChart for WinForms  

158 Copyright © GrapeCity, Inc. All rights reserved.         

Page 160: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Auto Hides overlapping labels.

Show Shows all labels including the overlapping ones.

Trim Trim label, if it's larger than the available width.

WordWrap Wrap label, if it's larger than the available width.

Here is the code snippet:

Visual Basic

FlexChart1.AxisX.OverlappingLabels = C1.Chart.OverlappingLabels.Auto

C#

flexChart1.AxisX.OverlappingLabels = C1.Chart.OverlappingLabels.Auto;

Staggered Axis Lines

Another way to handle overlapping of axis labels is to stagger them for better visibility. Staggered axis labels cangenerated by using StaggeredLines property. This property accepts an integer value and the default value is set to 1.

// StaggeredLines プロパティを設定しますflexChart1.AxisX.StaggeredLines = 2;

C#

軸のグループ化軸のグループ化

FlexChart provides the flexibility to group axis labels as per the requirement. Axis grouping helps in improving thereadability of the chart and makes it easy for analyzing data from different levels. Implementation of axis grouping in

  FlexChart for WinForms

159 Copyright © GrapeCity, Inc. All rights reserved.         

Page 161: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart depends on the data you are using, it can be either categorical data, numerical data, or DateTime data.

FlexChart supports the following axis grouping depending upon the data.

Categorical Axis GroupingLearn how to perform axis grouping while working with categorical data.

Numerical Axis GroupingLearn how to perform axis grouping while working with numerical data.

DateTime Axis GroupingLearn how to perform axis grouping while working with date time format data.

カテゴリ別の軸グループ化カテゴリ別の軸グループ化

Categorical axis grouping is applicable in scenarios where the data displayed on the axis is categorical in nature.Categorical data can either be flat or hierarchical. In case you are using flat data, use the GroupNames property toapply axis grouping. And, in case you are using hierarchical data, use the GroupNames and GroupItemsPath propertyto apply axis grouping. Moreover, FlexChart allows you to set the group separator usingthe GroupSeparator property.

As FlexChart grouping is possible at different hierarchical levels, the control also allows you to expand or collapsethese groups. This can be implemented using the GroupVisibilityLevel property which takes an integer value.

The following image shows how FlexChart appears after setting the categorical axis grouping using flat data.

Add the following code in Form1.cs file.

Partial Public Class Form1 Inherits Form Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) flexChart1.BindingX = "Country" flexChart1.ToolTip.Content = "{x}" & vbCr & "{seriesName}" & vbCr & "{y}"

Visual Basic

FlexChart for WinForms  

160 Copyright © GrapeCity, Inc. All rights reserved.         

Page 162: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.Header.Content = "World GDP Ranking" flexChart1.DataSource = CountryGDP.Countries() flexChart1.AxisX.GroupNames = "Continent" flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Grid flexChart1.AxisX.GroupVisibilityLevel = -2 flexChart1.AxisY.Title = "GDP (billion USD)" flexChart1.ChartType = ChartType.Column flexChart1.Series.Clear() Dim serCP As Series = New Series() serCP.Binding = "CurrentPrices" serCP.Name = "GDP, current prices" flexChart1.Series.Add(serCP) Dim serPPP As Series = New Series() serPPP.Binding = "PPPValuation" serPPP.Name = "GDP based on PPP valuation" flexChart1.Series.Add(serPPP) flexChart1.DataLabel.Position = LabelPosition.Auto End SubEnd Class

public partial class Form1 : Form { private void Form1_Load(object sender, EventArgs e) { flexChart1.BindingX = "Country"; flexChart1.ToolTip.Content = "{x}\r{seriesName}\r{y}"; flexChart1.Header.Content = "World GDP Ranking"; // データソースとグループ名を設定します flexChart1.DataSource = CountryGDP.Countries(); flexChart1.AxisX.GroupNames = "Continent"; flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Grid; flexChart1.AxisX.GroupVisibilityLevel = -2; // チャートのタイプと軸のタイトルを設定します flexChart1.AxisY.Title = "GDP (billion USD)"; flexChart1.ChartType = ChartType.Column; flexChart1.Series.Clear(); // 系列を追加します Series serCP = new Series(); serCP.Binding = "CurrentPrices"; serCP.Name = "GDP, current prices"; flexChart1.Series.Add(serCP);

Series serPPP = new Series(); serPPP.Binding = "PPPValuation"; serPPP.Name = "GDP based on PPP valuation"; flexChart1.Series.Add(serPPP); // 位置をAutoに設定します flexChart1.DataLabel.Position = LabelPosition.Auto; }

C#

  FlexChart for WinForms

161 Copyright © GrapeCity, Inc. All rights reserved.         

Page 163: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

}

数値の軸グループ化数値の軸グループ化

Numerical axis grouping is applicable in scenarios where the data displayed on the axis represents numeric values. Toimplement numerical axis grouping in FlexChart, set the GroupProvider property to an object of theIAxisGroupProvider implementation.

In the example code below, we have created a class NumericAxisGroupProvider that implements theIAxisGroupProvider interface. The interface provides GetLevels method that returns the group levelsand GetRanges method that returns the group ranges for a given level. Moreover, FlexChart allows you to set thegroup separator using the GroupSeparator property.

The following image shows how FlexChart appears after setting the numerical axis grouping.

Add the following code in Form1.cs file.

Partial Public Class Form1 Inherits Form Public Sub New() InitializeComponent() flexChart1.ChartType = ChartType.SplineSymbols flexChart1.DataSource = TemperatureRecord.Records() flexChart1.BindingX = "Month" flexChart1.Binding = "Temperature" flexChart1.AxisY.GroupProvider = New NumericAxisGroupProvider() flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid flexChart1.AxisY.Title = "Temperature in Celsius" flexChart1.AxisY.Min = 0 flexChart1.AxisY.Max = 40

Visual Basic

FlexChart for WinForms  

162 Copyright © GrapeCity, Inc. All rights reserved.         

Page 164: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Dim series = New Series() flexChart1.Series.Add(series) End Sub

Class NumericAxisGroupProvider Inherits IAxisGroupProvider Public Function GetLevels(ByVal range As IRange) As Integer Return 1 End Function

Public Function GetRanges(ByVal range As IRange, ByVal level As Integer) As IList(Of IRange) Dim ranges = New List(Of IRange)() If level = 1 Then ranges.Add(New DoubleRange("Low", 0, 10)) ranges.Add(New DoubleRange("Medium", 10, 25)) ranges.Add(New DoubleRange("High", 25, 40)) End If Return ranges End Function End ClassEnd Class

public partial class Form1 : Form { public Form1() { InitializeComponent(); flexChart1.ChartType = ChartType.SplineSymbols; flexChart1.DataSource = TemperatureRecord.Records(); flexChart1.BindingX = "Month"; flexChart1.Binding = "Temperature"; flexChart1.AxisY.GroupProvider = new NumericAxisGroupProvider(); flexChart1.AxisY.GroupStyle.StrokeWidth = 2; flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid; flexChart1.AxisY.Title = "Temperature in Celsius"; flexChart1.AxisY.Min = 0; flexChart1.AxisY.Max = 40; flexChart1.Series.Clear(); var series = new Series(); flexChart1.Series.Add(series); }

class NumericAxisGroupProvider : IAxisGroupProvider { public int GetLevels(IRange range) { return 1; }

C#

  FlexChart for WinForms

163 Copyright © GrapeCity, Inc. All rights reserved.         

Page 165: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

public IList<IRange> GetRanges(IRange range, int level) { var ranges = new List<IRange>(); if (level == 1) { ranges.Add(new DoubleRange("Low", 0, 10)); ranges.Add(new DoubleRange("Medium", 10, 25)); ranges.Add(new DoubleRange("High", 25, 40)); } return ranges; } }

DateTimeの軸グループ化の軸グループ化

DateTime axis grouping is applicable in scenarios where the data displayed on the axis represents date time values. Toimplement date axis grouping in FlexChart, set the GroupProvider property to an object of theIAxisGroupProvider implementation.

In the example code below, we have created a class DateTimeGroupProvider that implements theIAxisGroupProvider interface. The interface provides GetLevels method that returns the group levelsand GetRanges method that returns the group ranges for a given level. Moreover, FlexChart allows you to set thegroup separator using the GroupSeparator property.

As FlexChart grouping is possible at different hierarchical levels, the control also allows you to expand or collapsethese groups. This can be implemented using the GroupVisibilityLevel property which takes an integer value.

The following image shows how FlexChart appears after setting the date axis grouping.

FlexChart for WinForms  

164 Copyright © GrapeCity, Inc. All rights reserved.         

Page 166: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Add the following code in Form1.cs file.

Public Partial Class Form1 Inherits Form Private rnd As Random = New Random() Public Sub New() InitializeComponent() flexChart1.ChartType = ChartType.Line flexChart1.DataSource = CreateData() flexChart1.BindingX = "Time" flexChart1.Binding = "Price" flexChart1.AxisX.GroupProvider = New DateTimeGroupProvider() flexChart1.AxisX.Format = "MMM"

flexChart1.AxisX.GroupVisibilityLevel = 1 flexChart1.Series.Clear() flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Grid Dim series = New Series() flexChart1.Series.Add(series) End Sub

Public Class DateTimeGroupProvider Inherits IAxisGroupProvider

Public Function GetLevels(ByVal range As IRange) As Integer

Visual Basic

  FlexChart for WinForms

165 Copyright © GrapeCity, Inc. All rights reserved.         

Page 167: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Return 2 End Function

Public Function GetRanges(ByVal range As IRange, ByVal level As Integer) As IList(Of IRange) Dim timeRange = TryCast(range, TimeRange) If timeRange Is Nothing Then Return Nothing Dim min = timeRange.TimeMin Dim max = timeRange.TimeMax Dim span = max - min Dim ranges As List(Of IRange) = New List(Of IRange)() Dim start As DateTime If level = 1 Then start = New DateTime(min.Year, (CInt(Math.Ceiling(CDbl(min.Month) / 3)) - 1) * 3 + 1, 1) ranges = Enumerable.Range(0, ((max.Month - start.Month) / 3 + 1) + 4 * (max.Year - start.Year)).[Select](Function(a) start.AddMonths(a * 3)).TakeWhile(Function(a) a <= max).[Select](Function(a) CType((New TimeRange("Q" & CInt(Math.Ceiling(CDbl(a.Month) / 3)), a, a.AddMonths(3))), IRange)).ToList() Else start = New DateTime(min.Year, 1, 1) ranges = Enumerable.Range(0, max.Year - start.Year + 1).[Select](Function(a) start.AddYears(a)).TakeWhile(Function(a) a <= max).[Select](Function(a) CType((New TimeRange(a.ToString("yyyy"), a, a.AddYears(1))), IRange)).ToList() End If

Return ranges End Function End ClassEnd Class

public partial class Form1 : Form { Random rnd = new Random(); public Form1() { InitializeComponent(); // チャートタイプとバインディングを設定します flexChart1.ChartType = ChartType.Line; flexChart1.DataSource = CreateData(); flexChart1.BindingX = "Time"; flexChart1.Binding = "Price"; // 軸グループを設定します flexChart1.AxisX.GroupProvider = new DateTimeGroupProvider(); flexChart1.AxisX.Format = "MMM"; flexChart1.AxisX.GroupVisibilityLevel = 1; flexChart1.Series.Clear(); flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Grid; // 系列を追加します

C#

FlexChart for WinForms  

166 Copyright © GrapeCity, Inc. All rights reserved.         

Page 168: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

var series = new Series(); flexChart1.Series.Add(series); } public class DateTimeGroupProvider : IAxisGroupProvider { public int GetLevels(IRange range) { return 2; }

public IList<IRange> GetRanges(IRange range, int level) { var timeRange = range as TimeRange; if (timeRange == null) return null; var min = timeRange.TimeMin; var max = timeRange.TimeMax; var span = max - min;

List<IRange> ranges = new List<IRange>(); DateTime start; if (level == 1) { start = new DateTime(min.Year, ((int)Math.Ceiling((double)min.Month / 3) - 1) * 3 + 1, 1); ranges = Enumerable.Range(0, ((max.Month - start.Month) / 3 + 1) + 4 * (max.Year - start.Year)).Select(a => start.AddMonths(a * 3)) .TakeWhile(a => a <= max) .Select(a => (IRange)(new TimeRange("Q" + (int)Math.Ceiling((double)a.Month / 3), a, a.AddMonths(3)))).ToList(); } else { start = new DateTime(min.Year, 1, 1); ranges = Enumerable.Range(0, max.Year - start.Year + 1).Select(a => start.AddYears(a)) .TakeWhile(a => a <= max) .Select(a => (IRange)(new TimeRange(a.ToString("yyyy"), a, a.AddYears(1)))).ToList(); } return ranges; } } }

FlexChart の注釈の注釈

注釈は、チャート内の特定の領域をマークしたり強調表示するために使用するビジュアル要素です。たとえば、テキスト、画

像、図形を使用して、特定のデータポイントに関する重要な情報を表示したり強調表示することができます。チャートを使用す

る主な目的は、チャートデータをわかりやすく伝えることです。

  FlexChart for WinForms

167 Copyright © GrapeCity, Inc. All rights reserved.         

Page 169: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart には、図形、テキスト、画像の 3 つの注釈カテゴリと、8 つのタイプの注釈があります。注釈タイプごとに、さまざまな

方法でチャートデータを有益な情報にすることができます。円、四角形、多角形などの図形で情報を表示したり、わかりやすい

メモや画像でデータを強調表示することができます。

さらに、絶対、相対、データインデックス、データ座標などの添付モードを使用して、FlexChart に注釈を配置できます。フォン

ト、色、ストロークのスタイル設定プロパティから、注釈とそのコンテンツの両方をカスタマイズできます。ツールチップ、特に画

像注釈を追加して、注釈を対話式にすることができます。

注釈については、次のセクションを参照してください。

注釈の追加

注釈の配置

注釈のカスタマイズ

注釈のタイプ

吹き出しの作成

注釈の追加注釈の追加

FlexChart では、注釈レイヤに注釈を追加できます。注釈レイヤには、チャート内のすべての注釈のコレクションが含まれま

す。

FlexChart に注釈を追加するには、次の手順に従います。

1. FlexChart で注釈レイヤを作成します。

2. 注釈レイヤに注釈インスタンスを追加します。

FlexChart で注釈レイヤを作成するには、FlexChart をパラメータとして渡して AnnotationLayer クラスのインスタンスを作成

します。注釈レイヤに注釈を追加するには、注釈のタイプに対応する注釈クラスのインスタンスを作成します。その注釈インス

タンスを注釈レイヤの Annotations コレクションに追加します。

次のコードスニペットは、FlexChart で四角形注釈を作成し、それを注釈レイヤに追加する方法を示します。

FlexChart for WinForms  

168 Copyright © GrapeCity, Inc. All rights reserved.         

Page 170: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Visual Basic

' AnnotationLayerのインスタンスを作成し、FlexChartをパラメータとして渡します Dim annotationLayer As New C1.Win.Chart.Annotation.AnnotationLayer(FlexChart1)

' 矩形注釈のインスタンスを作成します Dim rect As New C1.Win.Chart.Annotation.Rectangle("関税および手数料" & vbLf & "2013" & vbLf & "45000")

' 注釈レイヤの注釈コレクションに注釈を追加します annotationLayer.Annotations.Add(rect)

C#

// AnnotationLayerのインスタンスを作成し、FlexChartをパラメータとして渡しますC1.Win.Chart.Annotation.AnnotationLayer annotationLayer = new C1.Win.Chart.Annotation.AnnotationLayer(flexChart1);

// 矩形注釈のインスタンスを作成しますC1.Win.Chart.Annotation.Rectangle rect = new C1.Win.Chart.Annotation.Rectangle("関税および手数料\n2013\n45000");

// 注釈レイヤの注釈コレクションに注釈を追加しますannotationLayer.Annotations.Add(rect);

注釈の配置注釈の配置

FlexChart の注釈の配置には、次の 2 つのメカニズムがあります(順序は不同)。

チャートに相対的に注釈を配置する。

データポイントに相対的に注釈を配置する。

チャートに相対的に注釈を配置するチャートに相対的に注釈を配置する

チャートに相対的に注釈を配置する場合は、チャート内の注釈の添付と場所を指定します。

FlexChart で注釈を添付する方法は、次の 4 つがあります。

Absolute:この添付は、アプリケーションのサイズ変更に関係なく、注釈が固定されて移動しないことを示します。絶対

添付を設定するには、Attachment プロパティを AnnotationAttachment 列挙の Absolute に設定します。絶対添

付モードで注釈の場所を設定するには、注釈の座標をピクセル単位で設定します。

DataCoordinate:この添付は、注釈が特定のデータポイントに添付されることを示します。この添付を設定するには、

Attachment プロパティを AnnotationAttachment 列挙の DataCoordinate に設定します。注釈の位置を設定するに

は、Location プロパティを設定して、注釈のデータ座標を指定します。

DataIndex:この添付は、系列のインデックスに基づいて系列に、ポイントインデックスに基づいてポイントに、注釈が

添付されることを示します。この添付を設定するには、Attachment プロパティを AnnotationAttachment 列挙の

DataIndex に設定します。注釈の場所を指定するには、SeriesIndex および PointIndex プロパティを設定します。

Relative:この添付は、注釈がチャートに相対的な場所とサイズを持つことを示します。この添付を設定するには、

Attachment プロパティを AnnotationAttachment 列挙の Relative に設定します。Location プロパティを使用して、

チャート内の相対的な注釈の場所を指定します。(0, 0)は左上、(1, 1)は右下です。

データポイントに相対的に注釈を配置するデータポイントに相対的に注釈を配置する

AnnotationPosition 列挙の Position プロパティを設定して、データポイントに対する注釈の場所を指定します。

次の図に、2013 年の最大の税収入を強調表示する四角形注釈を示します。

  FlexChart for WinForms

169 Copyright © GrapeCity, Inc. All rights reserved.         

Page 171: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードは、9 年間の税収入データを比較し、最大の収入を表示します。このコードは、FlexChart の注釈レイヤに四角形注

釈の添付、場所、位置を指定する方法を示します。

Visual Basic

' 注釈のAttachmentを指定しますrect.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataIndex

' 注釈の位置を設定しますrect.SeriesIndex = 0rect.PointIndex = 5

' 注釈のポジションを設定します rect.Position = C1.Chart.Annotation.AnnotationPosition.Top

' 注釈の寸法を指定しますrect.Height = 50rect.Width = 140

' 注釈スタイルを設定しますrect.Style.FillColor = Color.FromArgb(200, Color.Transparent)

C#

// 注釈のAttachmentを指定しますrect.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataIndex;

// 注釈の位置を設定しますrect.SeriesIndex = 0;rect.PointIndex = 5;

// 注釈の位置を設定しますrect.Position = C1.Chart.Annotation.AnnotationPosition.Top;

FlexChart for WinForms  

170 Copyright © GrapeCity, Inc. All rights reserved.         

Page 172: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// 注釈の寸法を指定しますrect.Height = 50;rect.Width = 140;

// 注釈スタイルを設定しますrect.Style.FillColor = Color.FromArgb(200, Color.Transparent);

注釈のカスタマイズ注釈のカスタマイズ

FlexChart の注釈は、サイズ(図形)、スケーリング(画像)、コンテンツスタイル(画像以外)をカスタマイズできます。

サイズサイズ:対応するクラスのサイズプロパティを使用して、すべての図形のサイズを変更します。たとえば、四角形注釈の

サイズを変更するには、Rectangle クラスの Height および Width プロパティを設定します。

スタイルスタイル:AnnotationBase クラスの Style プロパティを使用して、図形およびテキスト注釈の外観の色、フォント、スト

ロークをカスタマイズします。

コンテンツスタイルコンテンツスタイル:AnnotationBase クラスの ContentStyle プロパティを使用して、図形注釈内のコンテンツの外観

をカスタマイズします。

次の図に、2013 年の最大の税収入をさらに強調表示するようにカスタマイズされた四角形注釈を示します。

次のコードは、9 年間の税収入データを比較し、最大の収入を表示します。このコードは、四角形注釈のサイズを設定し、外観

とコンテンツをカスタマイズする方法を示します。

Visual Basic

' 注釈のディメンションを指定します rect.Height = 50 rect.Width = 140

  FlexChart for WinForms

171 Copyright © GrapeCity, Inc. All rights reserved.         

Page 173: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 注釈スタイルとコンテンツスタイルをカスタマイズします rect.Style.FillColor = Color.FromArgb(200, Color.DarkBlue) rect.Style.StrokeColor = Color.OrangeRed rect.Style.StrokeWidth = 2 rect.Style.StrokeDashPattern = New Single() {1.0F, 2.0F} rect.ContentStyle.StrokeColor = Color.Yellow rect.ContentStyle.Font = New System.Drawing.Font(FontFamily.GenericSansSerif, 8.5F, FontStyle.Bold)

C#

// 注釈のディメンションを指定しますrect.Height = 50;rect.Width = 140;

// 注釈のスタイルとコンテンツスタイルをカスタマイズしますrect.Style.FillColor = Color.FromArgb(200, Color.DarkBlue);rect.Style.StrokeColor = Color.OrangeRed;rect.Style.StrokeWidth = 2;rect.Style.StrokeDashPattern = new[] { 1f, 2f };rect.ContentStyle.StrokeColor = Color.Yellow;rect.ContentStyle.Font = new System.Drawing.Font(FontFamily.GenericSansSerif, 8.5F, FontStyle.Bold);

注釈のタイプ注釈のタイプ

FlexChart には、次の 3 つのカテゴリと 8 つのタイプの注釈があります。

図形図形:円、楕円、四角形、正方形、線、多角形などの図形を使用して、チャートデータ内の特定の領域に有益な情報を表

示したり、それらの領域を強調表示します。

テキストテキスト:テキスト注釈を使用して、説明用のメモや情報用のコメントをチャート内の特定のポイントに追加します。

画像画像:画像注釈を使用して、一目でわかる画像によってチャートデータの意味が伝わりやすくします。

FlexChart が提供するさまざまな注釈タイプについては、次のセクションを参照してください。

FlexChart for WinForms  

172 Copyright © GrapeCity, Inc. All rights reserved.         

Page 174: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

図形注釈

テキスト注釈

画像注釈

図形注釈図形注釈

図形には、重要なデータを含む領域を強調表示してユーザーの注意を引きつける効果があります。

FlexChart は、次の 6 つの図形注釈を提供します。

楕円

多角形

四角形

正方形

次の図に、2016 年の最大の関税額および通関手数料を強調表示した線注釈を示します。

これらの図形を作成するには、図形注釈クラスのインスタンスを作成します。対応するクラスのサイズプロパティを使用して、図形のサイズを設

定します。たとえば、線注釈を作成するには、Line クラスのインスタンスを作成します。Line クラスの Start および End プロパティを設定して、

線注釈の長さを指定したり、線注釈を回転させます。

すべての図形注釈の基本クラスである Shape クラスの Content プロパティを設定して、テキストを指定します。さらに、FlexChart の多角形注

釈を使用すると、三角形や矢印などの図形も作成できます。

次のコードは、商品の輸入関税データを使用して、2016 年のデータの増減を示します。このコードは、FlexChart の線注釈を追加、配置、カスタ

マイズする方法を示します。

Visual Basic

' 注釈のインスタンスを作成します。Dim line As New C1.Win.Chart.Annotation.Line()

' 線の内容を指定します。line.Content = "最大関税および手数料:31000"

' 線の開始点と終了点を指定します。

  FlexChart for WinForms

173 Copyright © GrapeCity, Inc. All rights reserved.         

Page 175: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

line.Start = New PointF(0, 31000)line.[End] = New PointF(12, 31000)

' 線の添付を指定します。line.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate

' 線の位置を設定します。line.Position = C1.Chart.Annotation.AnnotationPosition.Top

' 線と内容のスタイルをカスタマイズline.Style.StrokeColor = Color.DarkTurquoiseline.Style.StrokeWidth = 3line.ContentStyle.StrokeColor = Color.Blackline.ContentStyle.Font = New System.Drawing.Font(FontFamily.GenericSansSerif, 9, FontStyle.Regular)

' 注釈レイヤーの注釈コレクションに線を追加します。annotationLayer.Annotations.Add(line)

C#

// 注釈のインスタンスを作成します。C1.Win.Chart.Annotation.Line line = new C1.Win.Chart.Annotation.Line();

// 線の内容を指定します。line.Content = "最大関税および手数料: 31000";

// 線の開始点と終了点を指定します。line.Start = new PointF(0,31000);line.End = new PointF(12,31000);

// 線の添付を指定します。line.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;

// 線の位置を設定します。line.Position = C1.Chart.Annotation.AnnotationPosition.Top;

// 線と内容のスタイルをカスタマイズline.Style.StrokeColor = Color.DarkTurquoise;line.Style.StrokeWidth = 3;line.ContentStyle.StrokeColor = Color.Black;line.ContentStyle.Font = new System.Drawing.Font(FontFamily.GenericSansSerif, 9, FontStyle.Bold);

// 注釈レイヤーの注釈コレクションに線を追加します。annotationLayer.Annotations.Add(line);

テキスト注釈テキスト注釈

テキスト注釈を使用すると、特定のデータポイントに情報を追加して、データをわかりやすくすることができます。FlexChart では、1行だけでなく、複数行のテキストをテキスト注釈に追加できます。

次の図に、1961 ~ 2011 年の最大の人口増加率を表示するテキスト注釈を示します。

FlexChart for WinForms  

174 Copyright © GrapeCity, Inc. All rights reserved.         

Page 176: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart でテキスト注釈を使用するには、Text クラスのインスタンスを作成し、そのインスタンスの Content プロパティを設定し

ます。

次のコードは、50 年間の人口の増加率を比較します。このコードは、FlexChart のテキスト注釈を追加、配置、カスタマイズする方

法を示します。

Visual Basic

' 線注釈のインスタンスを作成します。Dim text As New C1.Win.Chart.Annotation.Text()

' 線の内容を指定します。text.Content = "前年度の最大人口増加" + Environment.NewLine + "(24.7 から 21.6)"

' 線の開始点と終了点を指定します。text.Location = New PointF(1961.0F, 25.15F)

' 線の添付を指定します。text.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate

' 線の位置を設定します。text.Position = C1.Chart.Annotation.AnnotationPosition.Top

' 線と内容のスタイルをカスタマイズtext.Style.StrokeColor = Color.Greentext.Style.Font = New System.Drawing.Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold)

' 注釈レイヤーの注釈コレクションに線を追加します。annotationLayer.Annotations.Add(text)

  FlexChart for WinForms

175 Copyright © GrapeCity, Inc. All rights reserved.         

Page 177: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C#

// 線注釈のインスタンスを作成します。C1.Win.Chart.Annotation.Text text = new C1.Win.Chart.Annotation.Text();

// 線の内容を指定します。text.Content = "前年度の最大人口増加" + Environment.NewLine + "(24.7 から 21.6)";

// 線の開始点と終了点を指定します。text.Location = new PointF(1961F,25.15F);

// 線の添付を指定します。text.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;

// 線の位置を設定します。text.Position = C1.Chart.Annotation.AnnotationPosition.Top;

// 線と内容のスタイルをカスタマイズtext.Style.StrokeColor = Color.Green;text.Style.Font = new System.Drawing.Font(FontFamily.GenericSansSerif, 8, FontStyle.Bold);

// 注釈レイヤーの注釈コレクションに線を追加します。annotationLayer.Annotations.Add(text);

画像注釈画像注釈

画像注釈には視覚的なインパクトがあり、ユーザーがチャートデータをすばやく解釈できるようにします。画像注釈によって有

益な情報を伝えるには、ツールチップを追加すると便利です。

次の図に、ツールチップと画像注釈を使用して、ファーストフードチェーンの中で売上高が最大のチェーンを示します。

FlexChart for WinForms  

176 Copyright © GrapeCity, Inc. All rights reserved.         

Page 178: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart で画像注釈を使用するには、Image クラスのインスタンスを作成し、SourceImage プロパティで画像のパスを指定

してインスタンスの画像を設定します。Height および Width プロパティを設定して、画像をスケーリングしたり、サイズを調整

します。画像注釈にツールチップを追加するには、画像注釈インスタンスで AnnotationBase クラスの TooltipText プロパ

ティを設定します。

次のコードは、米国におけるファーストフードチェーンの売上高を比較します。このコードは、FlexChart の画像注釈を追加、配

置、カスタマイズする方法を示します。

Visual Basic

' イメージ注釈のインスタンスを作成します。Dim image1 As New C1.Win.Chart.Annotation.Image()Dim image2 As New C1.Win.Chart.Annotation.Image()Dim image3 As New C1.Win.Chart.Annotation.Image()Dim image4 As New C1.Win.Chart.Annotation.Image()Dim image5 As New C1.Win.Chart.Annotation.Image()

' 注釈のソースイメージを設定します。image1.SourceImage = Image.FromFile("C:\Resources\image1.png")image2.SourceImage = Image.FromFile("C:\Resources\image2.png")image3.SourceImage = Image.FromFile("C:\Resources\image3.png")image4.SourceImage = Image.FromFile("C:\Resources\image4.png")image5.SourceImage = Image.FromFile("C:\Resources\image5.png")

' イメージの添付を指定します。image1.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinateimage2.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinateimage3.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinateimage4.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinateimage5.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate

' イメージの場所を設定します。image1.Location = New PointF(1, 35)image2.Location = New PointF(2, 15)image3.Location = New PointF(3, 11)image4.Location = New PointF(4, 8)image5.Location = New PointF(5, 7)

' イメージの位置を設定します。image1.Position = C1.Chart.Annotation.AnnotationPosition.Centerimage2.Position = C1.Chart.Annotation.AnnotationPosition.Centerimage3.Position = C1.Chart.Annotation.AnnotationPosition.Centerimage4.Position = C1.Chart.Annotation.AnnotationPosition.Centerimage5.Position = C1.Chart.Annotation.AnnotationPosition.Center

' イメージをスケールします。image1.Width = 68image1.Height = 62image2.Width = 60image2.Height = 61

' ツールチップを追加します。image1.TooltipText = "トップファストフードチェーンの中で最も高い収益" & vbLf & "35ビリオン ($)"

' 注釈レイヤの注釈コレクションにイメージを追加します。annotationLayer.Annotations.Add(image1)annotationLayer.Annotations.Add(image2)annotationLayer.Annotations.Add(image3)annotationLayer.Annotations.Add(image4)annotationLayer.Annotations.Add(image5)

  FlexChart for WinForms

177 Copyright © GrapeCity, Inc. All rights reserved.         

Page 179: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C#

// イメージ注釈のインスタンスを作成します。C1.Win.Chart.Annotation.Image image1 = new C1.Win.Chart.Annotation.Image();C1.Win.Chart.Annotation.Image image2 = new C1.Win.Chart.Annotation.Image();C1.Win.Chart.Annotation.Image image3 = new C1.Win.Chart.Annotation.Image();C1.Win.Chart.Annotation.Image image4 = new C1.Win.Chart.Annotation.Image();C1.Win.Chart.Annotation.Image image5 = new C1.Win.Chart.Annotation.Image();

// 注釈のソースイメージを設定します。image1.SourceImage = Image.FromFile("C:\\Resources\\image1.png");image2.SourceImage = Image.FromFile("C:\\Resources\\image2.png");image3.SourceImage = Image.FromFile("C:\\Resources\\image3.png");image4.SourceImage = Image.FromFile("C:\\Resources\\image4.png");image5.SourceImage = Image.FromFile("C:\\Resources\\image5.png");

// イメージの添付を指定します。image1.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;image2.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;image3.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;image4.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;image5.Attachment = C1.Chart.Annotation.AnnotationAttachment.DataCoordinate;

// イメージの場所を設定します。image1.Location = new PointF(1, 35);image2.Location = new PointF(2, 15);image3.Location = new PointF(3, 11);image4.Location = new PointF(4, 8);image5.Location = new PointF(5, 7);

// イメージの位置を設定します。image1.Position = C1.Chart.Annotation.AnnotationPosition.Center;image2.Position = C1.Chart.Annotation.AnnotationPosition.Center;image3.Position = C1.Chart.Annotation.AnnotationPosition.Center;image4.Position = C1.Chart.Annotation.AnnotationPosition.Center;image5.Position = C1.Chart.Annotation.AnnotationPosition.Center;

// イメージをスケールします。image1.Width = 68;image1.Height = 62;image2.Width = 60;image2.Height = 61;

// ツールチップを追加します。image1.TooltipText = "トップファストフードチェーンの中で最も高い収益\n35ビリオン($)";

// 注釈レイヤの注釈コレクションにイメージを追加します。annotationLayer.Annotations.Add(image1);annotationLayer.Annotations.Add(image2);annotationLayer.Annotations.Add(image3);annotationLayer.Annotations.Add(image4);annotationLayer.Annotations.Add(image5);

吹き出しの作成吹き出しの作成

チャート内で吹き出しを使用して、データ系列や個別のデータポイントの詳細を読みやすい形式で表示できます。データポイントに接続された

吹き出しは、チャート領域内の見た目の乱雑さを最小限に抑え、チャートデータを見やすく、かつわかりやすくします。FlexChart では、Polygon 型の注釈をカスタマイズして、直線または矢印の接続線が付いた吹き出しをチャートに作成できます。

この例では、クイックスタートで作成したサンプルを使用して、矢印付き吹き出しと接続線付きの多角形注釈を作成します。それに

は、Points プロパティと ContentCenter プロパティを使用して、それぞれ多角形の頂点の座標と注釈のコンテンツの中心を定義します。

それぞれのデータポイントに接続される吹き出しを作成するには、次の手順に従います。

FlexChart for WinForms  

178 Copyright © GrapeCity, Inc. All rights reserved.         

Page 180: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

手順手順 1:接続線付きの注釈の作成:接続線付きの注釈の作成

手順手順 2:矢印付き注釈吹き出しの作成:矢印付き注釈吹き出しの作成

手順手順 3:チャートへの注釈のレンダリング:チャートへの注釈のレンダリング

次の図に、矢印と接続線でデータポイントに接続される多角形注釈を示します。

手順手順 1:接続線付きの注釈の作成:接続線付きの注釈の作成

直線付きの吹き出しを作成するには、次のコードを使用します。

Visual Basic

... ' 多角形の線吹き出しの注釈を作成する Dim lineCallout = New Polygon("最高") With {.Attachment = AnnotationAttachment.DataIndex,.SeriesIndex = 1,.PointIndex = 1,.ContentCenter = New Point(25, -40)} ' 線吹き出しの注釈のポイントのリストを作成する lineCallout.Points.Add(New PointF(0, 0)) lineCallout.Points.Add(New PointF(25, -25)) lineCallout.Points.Add(New PointF(50, -25)) lineCallout.Points.Add(New PointF(50, -50)) lineCallout.Points.Add(New PointF(25, -75)) lineCallout.Points.Add(New PointF(0, -50)) lineCallout.Points.Add(New PointF(0, -25)) lineCallout.Points.Add(New PointF(25, -25)) lineCallout.Points.Add(New PointF(0, 0))

' 多角形の線吹き出しの注釈のスタイル設定 lineCallout.ContentStyle.StrokeColor = Color.Black lineCallout.Style.FillColor = Color.FromArgb(200, Color.Red) lineCallout.Style.StrokeColor = Color.Red ...

  FlexChart for WinForms

179 Copyright © GrapeCity, Inc. All rights reserved.         

Page 181: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

C#

// 多角形の線吹き出しの注釈を作成するvar lineCallout = new Polygon("最高"){ Attachment = AnnotationAttachment.DataIndex, SeriesIndex = 1, PointIndex = 1, ContentCenter = new Point(25, -40), // 線吹き出しの注釈のポイントのリストを作成する Points = { new Point(0, 0), new Point(25, -25), new Point(50, -25), new Point(50, -50), new Point(25, -75), new Point(0, -50), new Point(0, -25), new Point(25, -25), new Point(0, 0) }};//多角形の線吹き出しの注釈のスタイル設定lineCallout.ContentStyle.StrokeColor = Color.Black;lineCallout.Style.FillColor = Color.FromArgb(200, Color.Red);lineCallout.Style.StrokeColor = Color.Red;

先頭に戻る先頭に戻る

手順手順 2:矢印付き注釈吹き出しの作成:矢印付き注釈吹き出しの作成

1. 矢印付きの吹き出しを作成するには、次のコードを使用します。

Visual Basic Private Sub SetUpAnnotations() '多角形の矢印吹き出しの注釈を作成する Dim arrowCallout = New Polygon("最低") With { .Attachment = AnnotationAttachment.DataIndex, .SeriesIndex = 1, .PointIndex = 0, .ContentCenter = New PointF(25, -50)} '矢印吹き出しのポイントのリストを作成する Dim points As List(Of PointF) = GetPointsForArrowCallout(arrowCallout. ContentCenter.Value.X, arrowCallout.ContentCenter.Value.Y, "最低") For Each p As PointF In points arrowCallout.Points.Add(p) Next '矢印吹き出しの注釈のスタイル設定 arrowCallout.ContentStyle.StrokeColor = Color.Black arrowCallout.Style.FillColor = Color.FromArgb(200, Color.Green) arrowCallout.Style.StrokeColor = Color.Green ...

C#private void SetUpAnnotations(){ // 多角形の矢印吹き出しの注釈を作成する var arrowCallout = new Polygon("最低") { // データ系列インデックスとデータポイントインデックスによる注釈座標を指定する Attachment = AnnotationAttachment.DataIndex, SeriesIndex = 1, PointIndex = 0, ContentCenter = new PointF(25, -50) };

// GetPointsForArrowCallout()を呼び出して矢印吹き出しのポイントのリストを作成する List<PointF> points = GetPointsForArrowCallout(arrowCallout .ContentCenter.Value.X, arrowCallout.ContentCenter.Value.Y, "最低"); foreach (PointF p in points) { arrowCallout.Points.Add(p); }

//矢印吹き出しの注釈のスタイル設定

FlexChart for WinForms  

180 Copyright © GrapeCity, Inc. All rights reserved.         

Page 182: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

arrowCallout.ContentStyle.StrokeColor = Color.Black; arrowCallout.Style.FillColor = Color.FromArgb(200, Color.Green); arrowCallout.Style.StrokeColor = Color.Green;

2. GetPointsForArrowCallout() メソッドを定義して、矢印付きの吹き出しのポイントを指定します。

1. 矢印付きの吹き出し内のコンテンツ文字列のサイズを測定し、これを再利用して、矢印付きの注釈のサイズを計算して設定す

るには、次のコードを使用します。

Visual BasicPrivate Function GetPointsForArrowCallout(centerX As Single, centerY As Single, content As String) As List(Of PointF) ' 矢印吹き出しにコンテンツ文字列のサイズを測定する Dim size As _Size = _engine.MeasureString(content)

' 矢印注釈の寸法を計算するためのメソッドを呼び出す Return GetPointsForArrowCallout(centerX, centerY, CSng(size.Width) + 10, CSng(size.Height) + 10)End Function

C#private List<PointF> GetPointsForArrowCallout (float centerX, float centerY, string content){ // 矢印吹き出しにコンテンツ文字列のサイズを測定する _Size size = _engine.MeasureString(content);

// 矢印注釈の寸法を計算するためのメソッドを呼び出す return GetPointsForArrowCallout(centerX, centerY, (float)size.Width + 10, (float)size.Height + 10);}

2. 矢印付きの注釈のサイズとポイントを計算するには、次のようにオーバーロードメソッド GetPointsForArrowCallout() を定義し

ます。

Visual BasicPrivate Function GetPointsForArrowCallout(centerX As Single, centerY As Single, rectWidth As Single, rectHeight As Single) As List(Of PointF) Dim points = New List(Of PointF)()

Dim rectLeft As Single = centerX - rectWidth / 2 Dim rectRight As Single = centerX + rectWidth / 2 Dim rectTop As Single = centerY - rectHeight / 2 Dim rectBottom As Single = centerY + rectHeight / 2

Dim angle As Single = CSng(Math.Atan2(-centerY, centerX)) Dim angleOffset1 As Single = 0.4F Dim angleOffset2 As Single = 0.04F Dim arrowHeight As Single = 0.4F * rectHeight Dim hypotenuse As Single = CSng(arrowHeight / Math.Cos(angleOffset1)) Dim subHypotenuse As Single = CSng(arrowHeight / Math.Cos(angleOffset2))

Dim isNearBottom As Boolean = Math.Abs(rectTop) > Math.Abs(rectBottom) Dim nearHorizontalEdge As Single = If(isNearBottom, rectBottom, rectTop) Dim isNearRight As Boolean = Math.Abs(rectLeft) > Math.Abs(rectRight) Dim nearVerticalEdge As Single = If(isNearRight, rectRight, rectLeft) Dim isHorizontalCrossed As Boolean = Math.Abs(nearHorizontalEdge) > Math.Abs(nearVerticalEdge) Dim nearEdge As Single = If(isHorizontalCrossed, nearHorizontalEdge, nearVerticalEdge)

Dim factor As Integer = If(nearEdge > 0, -1, 1) Dim crossedPointOffsetToCenter As Single = If(isHorizontalCrossed, CSng(rectHeight / (2 * Math.Tan(angle)) * factor), CSng(rectWidth * Math.Tan(angle) * factor / 2))

' 矢印のポイントを指定する points.Add(New PointF(0, 0)) points.Add(New PointF(CSng(Math.Cos(angle + angleOffset1) * hypotenuse), CSng(-Math.Sin(angle + angleOffset1) * hypotenuse)))

  FlexChart for WinForms

181 Copyright © GrapeCity, Inc. All rights reserved.         

Page 183: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

points.Add(New PointF(CSng(Math.Cos(angle + angleOffset2) * subHypotenuse), CSng(-Math.Sin(angle + angleOffset2) * subHypotenuse)))

' 四角形のポイントを指定する If isHorizontalCrossed Then points.Add(New PointF(CSng(-nearEdge / Math.Tan(angle + angleOffset2)), CSng(nearEdge))) If isNearBottom Then points.Add(New PointF(rectLeft, rectBottom)) points.Add(New PointF(rectLeft, rectTop)) points.Add(New PointF(rectRight, rectTop)) points.Add(New PointF(rectRight, rectBottom)) Else points.Add(New PointF(rectRight, rectTop)) points.Add(New PointF(rectRight, rectBottom)) points.Add(New PointF(rectLeft, rectBottom)) points.Add(New PointF(rectLeft, rectTop)) End If points.Add(New PointF(CSng(-nearEdge / Math.Tan(angle - angleOffset2)), nearEdge)) Else points.Add(New PointF(nearEdge, CSng(-nearEdge * Math.Tan(angle + angleOffset2)))) If isNearRight Then points.Add(New PointF(rectRight, rectBottom)) points.Add(New PointF(rectLeft, rectBottom)) points.Add(New PointF(rectLeft, rectTop)) points.Add(New PointF(rectRight, rectTop)) Else points.Add(New PointF(rectLeft, rectTop)) points.Add(New PointF(rectRight, rectTop)) points.Add(New PointF(rectRight, rectBottom)) points.Add(New PointF(rectLeft, rectBottom)) End If points.Add(New PointF(nearEdge, CSng(-nearEdge * Math.Tan(angle - angleOffset2)))) End If

' 矢印のポイント points.Add(New PointF(CSng(Math.Cos(angle - angleOffset2) * subHypotenuse), CSng(-Math.Sin(angle - angleOffset2) * subHypotenuse))) points.Add(New PointF(CSng(Math.Cos(angle - angleOffset1) * hypotenuse), CSng(-Math.Sin(angle - angleOffset1) * hypotenuse))) Return pointsEnd Function

Private Sub FlexChart1_Click(sender As Object, e As EventArgs) Handles FlexChart1.Click

End SubC#

private List<PointF> GetPointsForArrowCallout (float centerX, float centerY, float rectWidth, float rectHeight){ var points = new List<PointF>();

float rectLeft = centerX - rectWidth / 2; float rectRight = centerX + rectWidth / 2; float rectTop = centerY - rectHeight / 2; float rectBottom = centerY + rectHeight / 2;

float angle = (float)(Math.Atan2(-centerY, centerX)); float angleOffset1 = 0.4f; float angleOffset2 = 0.04f; float arrowHeight = 0.4f * rectHeight; float hypotenuse = (float)(arrowHeight / Math.Cos(angleOffset1)); float subHypotenuse = (float)(arrowHeight / Math.Cos(angleOffset2));

bool isNearBottom = Math.Abs(rectTop) > Math.Abs(rectBottom); float nearHorizontalEdge = isNearBottom ? rectBottom : rectTop; bool isNearRight = Math.Abs(rectLeft) > Math.Abs(rectRight); float nearVerticalEdge = isNearRight ? rectRight : rectLeft;

FlexChart for WinForms  

182 Copyright © GrapeCity, Inc. All rights reserved.         

Page 184: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

bool isHorizontalCrossed = Math.Abs(nearHorizontalEdge) > Math.Abs(nearVerticalEdge); float nearEdge = isHorizontalCrossed ? nearHorizontalEdge : nearVerticalEdge;

int factor = nearEdge > 0 ? -1 : 1; float crossedPointOffsetToCenter = isHorizontalCrossed ? (float)(rectHeight / (2 * Math.Tan(angle)) * factor) : (float)(rectWidth * Math.Tan(angle) * factor / 2);

// 矢印のポイントを指定する points.Add(new PointF(0, 0)); points.Add(new PointF((float)(Math.Cos(angle + angleOffset1) * hypotenuse), (float)(-Math.Sin(angle + angleOffset1) * hypotenuse))); points.Add(new PointF((float)(Math.Cos(angle + angleOffset2) * subHypotenuse), (float)(-Math.Sin(angle + angleOffset2) * subHypotenuse)));

// 四角形のポイントを指定する if (isHorizontalCrossed) { points.Add(new PointF((float)(-nearEdge / Math.Tan(angle + angleOffset2)), (float)nearEdge)); if (isNearBottom) { points.Add(new PointF(rectLeft, rectBottom)); points.Add(new PointF(rectLeft, rectTop)); points.Add(new PointF(rectRight, rectTop)); points.Add(new PointF(rectRight, rectBottom)); } else { points.Add(new PointF(rectRight, rectTop)); points.Add(new PointF(rectRight, rectBottom)); points.Add(new PointF(rectLeft, rectBottom)); points.Add(new PointF(rectLeft, rectTop)); } points.Add(new PointF((float)(-nearEdge / Math.Tan(angle - angleOffset2)), nearEdge)); } else { points.Add(new PointF(nearEdge, (float)(-nearEdge * Math.Tan(angle + angleOffset2)))); if (isNearRight) { points.Add(new PointF(rectRight, rectBottom)); points.Add(new PointF(rectLeft, rectBottom)); points.Add(new PointF(rectLeft, rectTop)); points.Add(new PointF(rectRight, rectTop)); } else { points.Add(new PointF(rectLeft, rectTop)); points.Add(new PointF(rectRight, rectTop)); points.Add(new PointF(rectRight, rectBottom)); points.Add(new PointF(rectLeft, rectBottom)); } points.Add(new PointF(nearEdge, (float)(-nearEdge * Math.Tan (angle - angleOffset2)))); }

// 矢印のポイント points.Add(new PointF((float)(Math.Cos(angle - angleOffset2) * subHypotenuse), (float)(-Math.Sin(angle - angleOffset2) * subHypotenuse))); points.Add(new PointF((float)(Math.Cos(angle - angleOffset1) * hypotenuse), (float)(-Math.Sin(angle - angleOffset1) * hypotenuse))); return points;}

  FlexChart for WinForms

183 Copyright © GrapeCity, Inc. All rights reserved.         

Page 185: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

先頭に戻る先頭に戻る

手順手順 3:チャートへの注釈のレンダリング:チャートへの注釈のレンダリング

チャートの注釈をレンダリングするには、次の手順に従います。

1. アプリケーションの Form クラスで、AnnotationLayer クラスのグローバルフィールドとレンダリングエンジンを定義します。

Visual BasicDim annotationLayer As AnnotationLayerDim _engine As IRenderEngine

C#AnnotationLayer annotationLayer;IRenderEngine _engine;

2. SetUpAnnotations() メソッドで AnnotationLayer クラスのインスタンスを作成します。

Visual Basic' AnnotationLayerクラスのインスタンスを作成するannotationLayer = New AnnotationLayer(FlexChart1)

C#// AnnotationLayerクラスのインスタンスを作成するannotationLayer = new AnnotationLayer(flexChart1);

3. 次のコードを使用して、線と矢印付きの吹き出し注釈を annotationLayer に追加します。

Visual Basic 'annotationLayerに線と矢印の吹き出し注釈を追加する annotationLayer.Annotations.Add(arrowCallout) annotationLayer.Annotations.Add(lineCallout)End Sub

C# //annotationLayerに線と矢印の吹き出し注釈を追加する annotationLayer.Annotations.Add(arrowCallout); annotationLayer.Annotations.Add(lineCallout);}

4. 吹き出しをレンダリングするには、FlexChart の Rendered イベントで次のコードを使用します。

Visual BasicPrivate Sub FlexChart1_Rendered(sender As Object, e As C1.Win.Chart.RenderEventArgs) Handles FlexChart1.Rendered If _engine Is Nothing Then _engine = e.Engine SetUpAnnotations() FlexChart1.Invalidate() End IfEnd Sub

C#private void flexChart1_Rendered(object sender, C1.Win.Chart.RenderEventArgs e){ if (_engine == null) { _engine = e.Engine; SetUpAnnotations(); flexChart1.Invalidate(); }}

先頭に戻る先頭に戻る

FlexChart の凡例の凡例

デフォルトでは、系列コレクションエディタから Name プロパティによって系列が指定されるまで、FlexChart に凡例凡例は表示され

ません。

詳細については、「系列コレクションエディタ」を参照してください。

関連する名前で系列を設定すると、FlexChart によって凡例が表示されます。

FlexChart for WinForms  

184 Copyright © GrapeCity, Inc. All rights reserved.         

Page 186: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次に、凡例の外観全体のカスタマイズに使用できるトピックを示します。

凡例の位置

凡例のスタイル

凡例の切り替え

凡例テキストの折り返し

凡例のグループ化

Custom Legend Icon

凡例の位置凡例の位置

必要に応じて、Position プロパティを使用して、プロット領域を基準にして凡例を配置できます。

Position プロパティは、Position 列挙の次の値に設定できます。

プロパティプロパティ 説明説明

Position.Auto 凡例を自動的に配置します。

Position.Bottom プロットの下に凡例を配置します。

Position.Left プロットの左に凡例を配置します。

Position.None 凡例を非表示にします。

Position.Right(デフォルト値)(デフォルト値) プロットの右に凡例を配置します。

Position.Top プロットの上に凡例を配置します。

このプロパティを設定するコードスニペットは次のとおりです。

Visual Basic

' 凡例の位置を設定しますFlexChart1.Legend.Position = C1.Chart.Position.Top

C#

// 凡例の位置を設定しますflexChart1.Legend.Position = C1.Chart.Position.Top;

  FlexChart for WinForms

185 Copyright © GrapeCity, Inc. All rights reserved.         

Page 187: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

凡例のスタイル凡例のスタイル

FlexChart では、Style プロパティを使用して凡例凡例をカスタマイズできます。

次の表に、凡例のカスタマイズに使用できるプロパティを示します。

プロパティプロパティ 説明説明

FillColor 塗りつぶし色を指定します。

Font 凡例のフォントを設定します。

StrokeColor ストローク色を設定します。

StrokeWidth ストロークの幅を設定します。

凡例の切り替え凡例の切り替え

FlexChart では、LegendToggle プロパティに基づき、凡例内の系列項目をクリックしてプロットの系列の表示/非表示を切り

替えることができます。

LegendToggle プロパティのデフォルト値は False です。系列の切り替えを有効にするには、LegendToggle プロパティを

True に設定する必要があります。

次のコードスニペットを参照してください。

Visual Basic

FlexChart1.LegendToggle = True

C#

flexChart1.LegendToggle = true;

FlexChart for WinForms  

186 Copyright © GrapeCity, Inc. All rights reserved.         

Page 188: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

凡例テキストの折り返し凡例テキストの折り返し

  FlexChart for WinForms

187 Copyright © GrapeCity, Inc. All rights reserved.         

Page 189: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

凡例テキストの折り返しは、凡例エントリを切り詰めるか複数の行に折り返して短くします。この機能を使用すると、凡例が占

有するスペースを調整して、チャートの表示領域を柔軟に効率よく活用できます。

FlexChart は、各凡例エントリの最大幅を設定する ItemMaxWidth プロパティの値を超えた凡例テキストを折り返します。次

の 2 つの方法で凡例エントリを管理できます。

折り返し折り返し:このモードでは、凡例エントリを改行して複数行に分けます。テキストの折り返しは、チャート領域に凡例テキ

スト全体を表示する必要がある場合に便利です。FlexChart で凡例テキストを折り返すには、TextWrapping プロパ

ティを TextWrapping 列挙の Wrap に設定します。

切り詰め切り詰め:このモードでは、テキストの末尾を切り捨てて、凡例エントリを短くします。FlexChart で凡例テキストを折り返

すには、TextWrapping プロパティを Truncate に設定します。

FlexChart の凡例エントリに設定する最大幅は、テキストの折り返しとテキストの切り詰めの両方に影響を与えます。凡例エン

トリの最大幅を大きな値に設定すると、折り返されたり切り詰められる凡例テキストが少なくなります。

次の図に、複数の行に折り返された凡例テキストを示します。

次の図に、切り詰められた凡例テキストを示します。

FlexChart for WinForms  

188 Copyright © GrapeCity, Inc. All rights reserved.         

Page 190: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードは、FlexChart で凡例テキストの折り返しを実装する方法を示します。

Visual Basic

' 凡例項目の最大幅を設定するFlexChart1.Legend.ItemMaxWidth = 80

' 凡例のテキスト折り返しモードを設定するFlexChart1.Legend.TextWrapping = C1.Chart.TextWrapping.Wrap

' 凡例の位置を設定するFlexChart1.Legend.Position = C1.Chart.Position.Right

C#

// 凡例項目の最大幅を設定するflexChart1.Legend.ItemMaxWidth = 80;

// 凡例のテキスト折り返しモードを設定するflexChart1.Legend.TextWrapping = C1.Chart.TextWrapping.Wrap;

// 凡例の位置を設定するflexChart1.Legend.Position = C1.Chart.Position.Right;

凡例のグループ化凡例のグループ化

凡例グループは、名前が示すように、チャート系列の凡例エントリを、それらが表すデータに基づいてカテゴリ化します。そのため、似たデータを持

つ複数のチャート系列を凡例内でグループにまとめて、わかりやすく示すことができます。これにより、凡例が整理され、複数の系列を使用して

チャートを視覚化および分析する際に役立ちます。

FlexChart では、チャート内の系列の対応する凡例項目をグループ化するために、LegendGroup プロパティを使用します。LegendGroup プロパ

ティに文字列値を設定することで、特定の系列または凡例項目が属するグループ名を指定できます。LegendGroup プロパティの値が同じ系列

  FlexChart for WinForms

189 Copyright © GrapeCity, Inc. All rights reserved.         

Page 191: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

は、凡例内でグループ化されます。ただし、LegendGroup プロパティが定義されていない系列は、0 番目のグループに入ります。

LegendGroup プロパティの値は、対応する凡例項目の上にグループタイトルとして表示されます。ただし、0 番目のグループに属する凡例項目

は、グループタイトルなしで表示されます。

凡例グループの配置凡例グループの配置

凡例グループは、凡例の位置に応じて自動的に相互の配置が決定されます。たとえば、凡例がチャートの上または下に配置される場合、凡例グ

ループは横に並べられます。逆に、凡例がチャートの左または右に配置される場合、凡例グループは縦に並べられます。

凡例グループのスタイル設定凡例グループのスタイル設定

FlexChart は、凡例グループのスタイル設定と書式設定もサポートします。凡例グループのタイトルの外観は、GroupHeaderStyle プロパティを指

定してカスタマイズできます。

次の図に、ある企業の国ごと、四半期ごとの売上および利益をプロットする積層グラフを示します。ここでは、すばやく簡単に分析できるように、積

み重ねられる系列に基づいて凡例項目をグループ化しました。この図は、凡例と凡例グループが縦方向に配置される様子と、グループタイトルの

外観をカスタマイズできることも示しています。

次のコードスニペットは、これらの系列の Series.LegendGroup プロパティを目的のグループ名に設定して、それぞれの系列の凡例をグループ化

する方法を示します。また、コードスニペットは、GroupHeaderStyle プロパティを使用して、凡例グループのヘッダーのスタイルを設定する方法も

示します。

C#

// 系列ごとに凡例グループを指定しますflexChart1.Series[0].LegendGroup = "販売";flexChart1.Series[1].LegendGroup = "利益";flexChart1.Series[2].LegendGroup = "販売";flexChart1.Series[3].LegendGroup = "利益";flexChart1.Series[4].LegendGroup = "販売";flexChart1.Series[5].LegendGroup = "利益";flexChart1.Series[6].LegendGroup = "販売";flexChart1.Series[7].LegendGroup = "利益";

// 凡例グループのヘッダーのスタイル設定しますflexChart1.Legend.GroupHeaderStyle.Stroke = Brushes.DarkBlue;flexChart1.Legend.GroupHeaderStyle.Font = new Font(FontFamily.GenericMonospace, 10f, FontStyle.Bold);

flexChart1.EndUpdate();

チャートに系列を追加するには、次のコードスニペットを使用します。

C#

InitializeComponent(); SetupChart();}void SetupChart(){

FlexChart for WinForms  

190 Copyright © GrapeCity, Inc. All rights reserved.         

Page 192: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.BeginUpdate(); flexChart1.BackColor = Color.White; flexChart1.Series.Clear();

// データ系列を追加します var s1 = new Series(); s1.Binding = "SalesQ1"; s1.Name = "Q1"; flexChart1.Series.Add(s1); var s2 = new Series(); s2.Binding = "ProfitQ1"; s2.Name = "Q1"; flexChart1.Series.Add(s2);

var s3 = new Series(); s3.Binding = "SalesQ2"; s3.Name = "Q2"; flexChart1.Series.Add(s3);

var s4 = new Series(); s4.Binding = "ProfitQ2"; s4.Name = "Q2"; flexChart1.Series.Add(s4);

var s5 = new Series(); s5.Binding = "SalesQ3"; s5.Name = "Q3"; flexChart1.Series.Add(s5);

var s6 = new Series(); s6.Binding = "ProfitQ3"; s6.Name = "Q3"; flexChart1.Series.Add(s6);

var s7 = new Series(); s7.Binding = "SalesQ4"; s7.Name = "Q4"; flexChart1.Series.Add(s7);

var s8 = new Series(); s8.Binding = "ProfitQ4"; s8.Name = "Q4"; flexChart1.Series.Add(s8);

// x-bindingを設定し、グラフにデータを追加します flexChart1.BindingX = "Country"; flexChart1.DataSource = DataCreator.CreateCountry();

// FlexChartスタッキングタイプを設定します flexChart1.Stacking = C1.Chart.Stacking.Stacked;

// 系列ごとにスタッキンググループを指定します flexChart1.Series[0].StackingGroup = 0; flexChart1.Series[1].StackingGroup = 1; flexChart1.Series[2].StackingGroup = 0; flexChart1.Series[3].StackingGroup = 1; flexChart1.Series[4].StackingGroup = 0; flexChart1.Series[5].StackingGroup = 1; flexChart1.Series[6].StackingGroup = 0; flexChart1.Series[7].StackingGroup = 1;

Data Source

この例では、次のデータを使用します。

C#

class DataCreator{ public static CountryDataItem[] CreateCountry() { var countries = new string[] { "アメリカ", "中国", "英国", "インド", "日本" }; var count = countries.Length;

  FlexChart for WinForms

191 Copyright © GrapeCity, Inc. All rights reserved.         

Page 193: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

var result = new CountryDataItem[count]; var rnd = new Random(); for (var i = 0; i < count; i++) result[i] = new CountryDataItem() { Country = countries[i], SalesQ1 = rnd.Next(320), ProfitQ1 = rnd.Next(50), SalesQ2 = rnd.Next(200), ProfitQ2 = rnd.Next(60), SalesQ3 = rnd.Next(300), ProfitQ3 = rnd.Next(20), SalesQ4 = rnd.Next(120), ProfitQ4 = rnd.Next(50), }; return result; }}public class CountryDataItem{ public string Country { get; set; } public double SalesQ1 { get; set; } public double ProfitQ1 { get; set; } public double SalesQ2 { get; set; } public double ProfitQ2 { get; set; } public double SalesQ3 { get; set; } public double ProfitQ3 { get; set; } public double SalesQ4 { get; set; } public double ProfitQ4 { get; set; }}

カスタムの凡例アイコンカスタムの凡例アイコン

FlexChart allows you to apply custom image or icon for customizing the legend items. To enable FlexChart to displaycustom legend icon, implement the GetLegendItemImageSource method provided by ISeries interface. This methodprimarily accepts two parameters; index and _size. The index parameter refers to the legend item position and _sizeparameter refers to the default legend icon size.

In the example code below, we have implemented the GetLegendItemImageSource method to customize the imagesize and draw a border around it. This method then returns the image object. To apply the custom legend icon addobject of the class SeriesWithPointLegendItems to the chart Series collection.

The image shows how FlexChart appears after using custom legend icon.

FlexChart for WinForms  

192 Copyright © GrapeCity, Inc. All rights reserved.         

Page 194: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Add the following code in Form1.cs file.

public partial class Form1 : Form { public Form1() { InitializeComponent(); } static List<SmartPhoneVendor> vendors = new List<SmartPhoneVendor>(); static Image LegendIconImage = Properties.Resources.usa; Series customSeries; private void Form1_Load(object sender, EventArgs e) { vendors = SmartPhoneVendors(); // データソースを設定します flexChart1.DataSource = vendors; flexChart1.BindingX = "Name"; flexChart1.Binding = "Sales"; flexChart1.Header.Style.Font = new Font(FontFamily.GenericSansSerif, 15); flexChart1.Header.Content = "Top Smartphone Vendors"; flexChart1.Series.Clear();

// カスタム系列を追加します customSeries = new SeriesWithPointLegendItems(); customSeries.Name = "Sales in USA"; flexChart1.Series.Add(customSeries); flexChart1.Legend.Position = Position.Left;

CS

  FlexChart for WinForms

193 Copyright © GrapeCity, Inc. All rights reserved.         

Page 195: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

flexChart1.ToolTip.Content = "{seriesName}\r\n{value}"; } public class SeriesWithPointLegendItems : Series, ISeries { object ISeries.GetLegendItemImageSource(int index, ref C1.Chart._Size imageSize) { { // 元の画像/ロゴはすべて50x50ピクセルです // ここでは、ロゴの周りに5ピクセルのボーダーが追加された新しいイメージに置き換えられます imageSize.Height = 60; imageSize.Width = 60;

SmartPhoneVendor vendor = vendors.ElementAt(index); if (LegendIconImage != null && LegendIconImage.Width != 60) { Bitmap bmp = new Bitmap(60, 60); using (SolidBrush sb = new SolidBrush(vendor.Color)) { using (Graphics g = Graphics.FromImage(bmp)) { Rectangle r = new Rectangle(0, 0, (int)imageSize.Width, (int)imageSize.Height); using (Pen p = new Pen(sb)) { g.DrawRectangle(p, r); } g.FillRectangle(sb, r);

Point ci = new Point((int)(0.5 * (imageSize.Width - LegendIconImage.Width)), (int)(0.5 * (imageSize.Height - LegendIconImage.Height))); g.DrawImage(LegendIconImage, ci); } } LegendIconImage = bmp; } // ロゴビットマップの元のサイズを維持しますが、グラフウィンドウがビットマップを適切に表示するには          // 小さすぎる場合は、サイズを縮小します Size bounds = this.Chart.ClientSize; double divadj = (bounds.Height > 800) ? 12 : 25; double fracHeight = bounds.Height / divadj; if (fracHeight < imageSize.Height) imageSize.Width = imageSize.Height = fracHeight; return LegendIconImage; } }

FlexChart for WinForms  

194 Copyright © GrapeCity, Inc. All rights reserved.         

Page 196: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

} private static List<SmartPhoneVendor> SmartPhoneVendors() {

vendors.Add(new SmartPhoneVendor() { Name = "Apple", Color = Color.FromArgb(136, 189, 230), Sales = 350, }); vendors.Add(new SmartPhoneVendor() { Name = "LG", Color = Color.FromArgb(251, 178, 88), Sales = 120, }); vendors.Add(new SmartPhoneVendor() { Name = "Samsung", Color = Color.FromArgb(188, 153, 199), Sales = 280, }); vendors.Add(new SmartPhoneVendor() { Name = "Xiaomi", Color = Color.FromArgb(240, 126, 110), Sales = 68, });

return vendors; } public class SmartPhoneVendor { public string Name { get; set; } public double Sales { get; set; } public Color Color { get; set; } } }

FlexChart の系列の系列

系列は 1 組のデータです。より具体的に言えば、互いに関連するデータポイントとしてチャートにプロットされるデータです。

FlexChart 内の 1 つの系列は Series オブジェクトで表され、これがチャートにプロットされるデータ全体を提供します。さら

に、Flexchart.Series コレクションは、コントロール内のすべてのデータ系列(Series オブジェクト)で構成されます。

FlexChart 内の系列には、次のプロパティを割り当てることができます。

X 軸(Series.AxisX)Y 軸(Series.AxisY)系列の Y 値を含むプロパティ(Series.Binding)

  FlexChart for WinForms

195 Copyright © GrapeCity, Inc. All rights reserved.         

Page 197: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

系列の X 値を含むプロパティ(Series.BindingX)チャートタイプ(Series.ChartType)系列データを含むオブジェクトのコレクション(Series.DataSource)名前(Series.Name)

系列を構成するデータポイントのコレクションは、次のプロパティを使用してカスタマイズできます。

系列の各データポイントで使用されるマーカーの形を設定する:Series.SymbolMarker系列のレンダリングに使用されるシンボルのサイズを設定する:Series.SymbolSize系列のデータポイントで使用されるシンボルスタイルを設定する:Series.SymbolStyle

これらのプロパティを系列に設定すると、すべてのデータポイントで同じ設定が継承されます。

FlexChart の Series オブジェクトに関する主要な情報については、以下のリンクを参照してください。

系列の作成と追加

系列へのデータの追加

各種データの強調

系列のカスタマイズ

箱ひげ図

誤差範囲

ウォータフォール

積層グループ

系列の作成と追加系列の作成と追加

デフォルトでは、FlexChart は設計時に 1 つの系列を表示します。しかし、実行時には、チャートにデータが提供されるまで系

列は表示されません。FlexChart にデータを提供する方法については、「データの提供」を参照してください。

FlexChart では、設計時にも実行時にも、系列を作成して追加することができます。

設計時設計時

設計時に FlexChart に系列を作成して追加するには、次の手順を実行します。

1. プロパティプロパティウィンドウで、[系列][系列]フィールドに移動します。

2. [系列][系列]フィールドの横にある省略符省略符 ボタンをクリックします。

系列コレクションエディタ系列コレクションエディタ が表示されます。

FlexChart には、デフォルトで、Series コレクションに追加された 1 つの系列が含まれています。したがって、系系

列コレクションエディタ列コレクションエディタは、あらかじめ 1 つの系列(Series 1)が追加されて表示されます。

3. [追加][追加]ボタンをクリックして、系列を Series コレクションに追加します。

4. 手順 3 を繰り返して、必要な数だけ系列を追加します。

5. [[OK]]ボタンをクリックします。

実行時実行時

実行時には、まず、Series オブジェクトを使用して系列を作成する必要があります。次に、FlexChart.Series コレクションプロ

パティの Add メソッドを使用して、FlexChart Series コレクションに系列を追加します。

次のコードは、実行時に FlexChart に系列を作成して追加する方法を示します。

Visual Basic

' 系列を作成しますDim series1 As New C1.Win.Chart.Series()

FlexChart for WinForms  

196 Copyright © GrapeCity, Inc. All rights reserved.         

Page 198: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Dim series2 As New C1.Win.Chart.Series()

' 系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

C#

// 系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();

// 系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);

系列へのデータの追加系列へのデータの追加

FlexChart では、Series オブジェクトの SetData() を使用して、系列にデータを簡単に追加できます。SetData() は、パラメータ

として double 型の 2 つの配列(X 値を指定する配列と Y 値を指定する配列)を受け取ります。

次に、SetData() の使用方法を示すコードを示します。

Visual Basic

' 系列の名前を指定しますseries1.Name = "収入"series2.Name = "家賃"

' 系列にデータを追加しますseries1.SetData( New Double() {31, 32, 33, 34, 35, 36, 37, 38, 39, 40}, New Double() {24000, 24500, 25000, 26000, 27000, 28000, 35000, 35000, 37000, 40000})series2.SetData( New Double() {31, 32, 33, 34, 35, 36, 37, 38, 39, 40}, New Double() {5500, 5700, 5750, 5000, 5200, 8000, 8500, 9500, 6000, 12000})

C#

// 系列の名前を指定しますseries1.Name = "収入";series2.Name = "家賃";

// 系列にデータを追加しますseries1.SetData( new double[] { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, new double[] { 24000, 24500, 25000, 26000, 27000, 28000, 35000, 35000, 37000, 40000 });series2.SetData( new double[] { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, new double[] { 5500, 5700, 5750, 5000, 5200, 8000, 8500, 9500, 6000, 12000 });

  FlexChart for WinForms

197 Copyright © GrapeCity, Inc. All rights reserved.         

Page 199: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

系列データをプロットする前に、FlexChart.Series コレクションプロパティの Clear() を使用して、FlexChart の Series コレクションをクリアする必要があります。Series コレクションをクリアしない場合は、デフォルトの系列エントリが凡例に表

示されます。Clear() を使用すると、デフォルトのデータが無効になり、提供されたデータがチャートにプロットされます。

Point 配列を使用して、FlexChart の系列にデータを追加することもできます。詳細については、「配列からのデータのロード」

を参照してください。

系列へのデータの追加については、さらに強力な連結による方法が提供されています。FlexChart 内の系列を複数のデータ

ソースと連結することができるため、複数のデータソースのデータを組み合わせることができます。複数のデータソースのデー

タをプロットするには、Series.DataSource プロパティを使用する必要があります。

次のコードを参照してください。

Visual Basic

' 系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()Dim series3 As New C1.Win.Chart.Series()

' 系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)FlexChart1.Series.Add(series3)

' 系列の名前を指定しますseries1.Name = "収入"series2.Name = "家賃"series3.Name = "消費"

' データテーブルを作成しますDim dt As New DataTable()

' データテーブルに列を追加しますdt.Columns.Add("Age Group", GetType(Integer))dt.Columns.Add("Expenditure", GetType(Integer))

' データテーブルに行を追加しますdt.Rows.Add(31, 7000)dt.Rows.Add(32, 8000)

FlexChart for WinForms  

198 Copyright © GrapeCity, Inc. All rights reserved.         

Page 200: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

dt.Rows.Add(33, 7500)dt.Rows.Add(34, 9000)dt.Rows.Add(35, 9500)dt.Rows.Add(36, 11000)dt.Rows.Add(37, 10000)dt.Rows.Add(38, 10500)dt.Rows.Add(39, 12000)dt.Rows.Add(40, 11500)

' 最初の2つの系列にデータを追加しますseries1.SetData(New Double() {31, 32, 33, 34, 35, 36, _ 37, 38, 39, 40}, New Double() {24000, 24500, 25000, 26000, 27000, 28000, _ 35000, 35000, 37000, 40000})series2.SetData(New Double() {31, 32, 33, 34, 35, 36, _ 37, 38, 39, 40}, New Double() {5500, 5700, 5750, 5000, 5200, 8000, _ 8500, 9500, 6000, 12000})

' 第三の系列のデータソースとしてdtを設定しますseries3.DataSource = dt

' 第三系列のX軸およびY軸を結合しますseries3.Binding = "Expenditure"series3.BindingX = "Age Group"

C#

// 系列を作成しますC1.Win.Chart.Series series1 = new C1.Win.Chart.Series();C1.Win.Chart.Series series2 = new C1.Win.Chart.Series();C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// 系列を追加しますflexChart1.Series.Add(series1);flexChart1.Series.Add(series2);flexChart1.Series.Add(series3);

// 系列の名前を指定しますseries1.Name = "収入";series2.Name = "家賃";series3.Name = "消費";

// データテーブルを作成しますDataTable dt = new DataTable();

// データテーブルに列を追加しますdt.Columns.Add("Age Group", typeof(int));dt.Columns.Add("Expenditure", typeof(int));

// データテーブルに行を追加しますdt.Rows.Add(31, 7000);dt.Rows.Add(32, 8000);dt.Rows.Add(33, 7500);dt.Rows.Add(34, 9000);dt.Rows.Add(35, 9500);dt.Rows.Add(36, 11000);dt.Rows.Add(37, 10000);dt.Rows.Add(38, 10500);dt.Rows.Add(39, 12000);dt.Rows.Add(40, 11500);

// 最初の2つの系列にデータを追加しますseries1.SetData( new double[] { 31, 32, 33, 34, 35,

  FlexChart for WinForms

199 Copyright © GrapeCity, Inc. All rights reserved.         

Page 201: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

36, 37, 38, 39, 40 }, new double[] { 24000, 24500, 25000, 26000, 27000, 28000, 35000, 35000, 37000, 40000 });series2.SetData( new double[] { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, new double[] { 5500, 5700, 5750, 5000, 5200, 8000, 8500, 9500, 6000, 12000 });

// 第三の系列のデータソースとしてdtを設定しますseries3.DataSource = dt;

// 第三系列のX軸およびY軸を結合しますseries3.Binding = "Expenditure";series3.BindingX = "Age Group";

各種データの強調各種データの強調

チャートでさまざまなタイプのデータを強調したいというニーズはよくあり、しかもそれは重要です。識別しやすいチャートデータ

ほど解釈や理解が容易なので、さまざまなタイプのデータを強調して識別できるようにすることは必須です。

このニーズに応えるために、FlexChart では、2 つ以上のチャートタイプを 1 つのチャートに組み合わせることができます。たと

えば、折れ線シンボルグラフを縦棒グラフと組み合わせて、チャートのデータを解釈しやすくすることができます。ChartTypeプロパティを使用すると、系列ごとに系列レベルでチャートタイプを指定でき、その結果、複数のチャートタイプが含まれる

チャートを作成することができます。

次のコードは、2 つのチャートタイプを 1 つのチャートに組み合わせています。

Visual Basic

' 系列を作成しますDim series1 As New C1.Win.Chart.Series()Dim series2 As New C1.Win.Chart.Series()

' 系列を追加しますFlexChart1.Series.Add(series1)FlexChart1.Series.Add(series2)

C#

FlexChart for WinForms  

200 Copyright © GrapeCity, Inc. All rights reserved.         

Page 202: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// 各系列に対してチャートタイプを指定しますseries1.ChartType = C1.Chart.ChartType.LineSymbols;series2.ChartType = C1.Chart.ChartType.Column;

各系列はそれぞれのチャートタイプで表されため、特定の系列によって表されるデータを簡単に識別できます。

しかし、プロットされるデータが複数の単位やスケールを必要とする場合は、複数のチャートタイプを 1 つのチャートに組み合

わせるだけでは十分ではありません。このような場合は、軸ごとに異なるデータをプロットしてデータのタイプを強調する必要

があります。FlexChart は、複数の軸をシームレスに使用できるようにすることで、このニーズにも応えています。

FlexChart で複数の軸を作成および使用する方法については、「複数の軸」を参照してください。

系列のカスタマイズ系列のカスタマイズ

系列がチャートに表示されたら、表示された系列をカスタマイズして、より効率的な管理を行うことができます。

FlexChart では、プロット領域、凡例、またはその両方で系列を表示または非表示にして系列をカスタマイズできます。チャート

のスペースには限りがあるため、チャートに表示される系列が大量にある場合は、系列の管理が確実に必要になります。

FlexChart では、系列の Visibility プロパティを使用して系列を管理できます。Visibility プロパティは、SeriesVisibility 列挙

型の値を受け取ります。

このプロパティを以下に示す値に設定して、系列を表示または非表示にすることができます。

値値 説明説明

SeriesVisibility.Visible 系列はプロットと凡例の両方に表示されます。

SeriesVisibility.Plot 系列はプロットには表示されますが、凡例には表示されません。

SeriesVisibility.Legend 系列は凡例には表示されますが、プロットには表示されません。

SeriesVisibility.Hidden 系列はプロットと凡例のどちらにも表示されません。

次のコードスニペットを参照してください。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"

  FlexChart for WinForms

201 Copyright © GrapeCity, Inc. All rights reserved.         

Page 203: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

series3.Name = "注目中の単位"

' 「注目中の単位」を非表示にしますseries3.Visibility = C1.Chart.SeriesVisibility.Hidden

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」を非表示にしますseries3.Visibility = C1.Chart.SeriesVisibility.Hidden;

系列(発注単位数)をプロット領域には表示して凡例には表示しない場合は、Visibility プロパティを次のように使用します。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

' 「注目中の単位」はプロットには表示されますが、凡例には表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Plot

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」はプロットには表示されますが、凡例には表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Plot;

FlexChart for WinForms  

202 Copyright © GrapeCity, Inc. All rights reserved.         

Page 204: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

同様に、系列を凡例に表示してプロット領域には表示しない場合は、Visibility プロパティを次のように設定します。

Visual Basic

' 系列の名前を指定しますseries1.Name = "単位価格"series2.Name = "在庫にあり単位"series3.Name = "注目中の単位"

'「注目中の単位」は凡例には表示されますが、プロットには表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Legend

C#

// 系列の名前を指定しますseries1.Name = "単位価格";series2.Name = "在庫にあり単位";series3.Name = "注目中の単位";

// 「注目中の単位」は凡例には表示されますが、プロットには表示されません。series3.Visibility = C1.Chart.SeriesVisibility.Legend;

  FlexChart for WinForms

203 Copyright © GrapeCity, Inc. All rights reserved.         

Page 205: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

このほかに、FlexChart のさまざまなパレットを設定して、系列の視覚効果を高めることができます。詳細については、

「FlexChart: パレットの設定」を参照してください。

さまざまなシンボルスタイルを使用して、チャートに視覚効果の高い系列をレンダリングすることもできます。詳細については、

「系列のシンボルスタイル」を参照してください。

積層グループ積層グループ

FlexChart は、縦棒グラフと横棒グラフで、データ項目の積層とグループ化をサポートします。積層は、データを上に(縦棒グラ

フ)または横に(横棒グラフ)積み重ねます。一方、グループ化は、縦棒グラフまたは横棒グラフで積み重ねられたデータを集

合化します。

積層グループを使用すると、グループ内のカテゴリ間で項目を比較できます。さらに、各グループの項目間の相対的な差を視

覚化できます。

次の図に、FlexChart の積層グループを示します。

FlexChart for WinForms  

204 Copyright © GrapeCity, Inc. All rights reserved.         

Page 206: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

特定の積層グループで特定の系列を積み重ねるには、系列の StackingGroup プロパティで積層グループのインデックス値

を設定します。FlexChart の積層グループは、FlexChart の Stacking プロパティが Stacked または Stacked100pc に設定さ

れている場合に実装できます。これにより、チャートのデータ値を積み重ねる方法を指定します。

次のコードは、連続した 3 か月の果物のデータを比較し、FlexChart で積層グループで実装する方法を示します。

Visual Basic

FlexChart1.Series.Clear()

' 3つのデータ系列を追加するDim s1 = New Series()s1.Binding = "March"s1.Name = "3月"FlexChart1.Series.Add(s1)

Dim s2 = New Series()s2.Binding = "April"s2.Name = "4月"FlexChart1.Series.Add(s2)

Dim s3 = New Series()s3.Binding = "May"s3.Name = "5月"FlexChart1.Series.Add(s3)

' BindingXを設定し、グラフにデータを追加するFlexChart1.BindingX = "Fruit"FlexChart1.DataSource = DataCreator.CreateFruit()

' FlexChartの積層タイプを設定するFlexChart1.Stacking = C1.Chart.Stacking.Stacked

  FlexChart for WinForms

205 Copyright © GrapeCity, Inc. All rights reserved.         

Page 207: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 系列ごとに積層グループを指定するFlexChart1.Series(0).StackingGroup = 0FlexChart1.Series(1).StackingGroup = 0FlexChart1.Series(2).StackingGroup = 1

C#

flexChart1.Series.Clear();

// 3つのデータ系列を追加するvar s1 = new Series();s1.Binding = "March";s1.Name = "3月";flexChart1.Series.Add(s1);

var s2 = new Series();s2.Binding = "April";s2.Name = "4月";flexChart1.Series.Add(s2);

var s3 = new Series();s3.Binding = "May";s3.Name = "5月";flexChart1.Series.Add(s3);

// BindingXを設定し、グラフにデータを追加するflexChart1.BindingX = "Fruit";flexChart1.DataSource = DataCreator.CreateFruit();

// FlexChartの積層タイプを設定するflexChart1.Stacking = C1.Chart.Stacking.Stacked;

// 系列ごとに積層グループを指定するflexChart1.Series[0].StackingGroup = 0;flexChart1.Series[1].StackingGroup = 0;flexChart1.Series[2].StackingGroup = 1;

FlexChart のデータラベルのデータラベル

データラベルは、データポイントに関連付けられたラベルで、データポイントに関する追加情報を提供します。言い換えると、

データラベルは、系列のデータポイント上に表示される説明的なテキストまたは値と定義することができます。データラベル

は、主に、重要なデータポイントを強調表示することで、チャートを読みやすくし、データをすばやく識別できるようにするために

使用されます。

FlexChartでサポートされているデータラベルは、高度にカスタマイズ可能で、チャートデータを簡単に強調表示できます。その

ため、エンドユーザーがチャートデータを効率よく識別および解釈するために役立ちます。FlexChart でデータラベルを使用す

るには、DataLabel プロパティを使用します。デフォルトでは、FlexChart にデータラベルは表示されません。しか

し、DataLabel クラスと DataLabelBase クラスのさまざまなプロパティを使用して、データラベルを表示できるだけでなく、必

要に応じてカスタマイズすることもできます。

以下のセクションでは、データポイントにデータラベルを追加する方法、およびデータラベルの外観やデータラベルに表示され

るデータなど、データラベルの詳細を制御する方法について説明します。

データラベルの追加と配置

データラベルの書式設定

Managing Overlapping Data Labels

データラベルの追加と配置データラベルの追加と配置

FlexChart for WinForms  

206 Copyright © GrapeCity, Inc. All rights reserved.         

Page 208: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

チャートのデータポイントにデータラベルを追加すると、データラベルに個々のデータポイントの詳細が表示されるため、チャー

トデータを理解しやすくなります。データラベルは、関連のあるデータや重要なデータをすばやく強調表示します。

FlexChart の使用時に、簡単な方法でデータポイントにデータラベルを追加できます。データラベルに表示するエントリの種類

に応じて、Content プロパティを設定するだけです。また、Position プロパティによってデータラベルの位置を設定して、

チャートにデータラベルを表示します。

次の表に、データラベルのコンテンツのカスタマイズ化に適用される定義済みパラメータを示します。

パラメータパラメータ 説明説明

x データポイントのX値を表示します。

y データポイントのY値を表示します。

value データポイントのY値を表示します。

name データポイントのX値を表示します。

seriesName 系列の名前を表示します。

pointIndex データポイントのインデックスを表示します。

P Sunburstの親セグメントに対する割合を示します。

p Sunburstのチャート全体に対する割合を示します。

次のコードスニペットを参照してください。

C#

// Contentプロパティ設定しますflexChart1.DataLabel.Content = "{value}";

// データラベルの位置を設定しますflexChart1.DataLabel.Position = C1.Chart.LabelPosition.Top;

チャートタイプに応じて、さまざまな配置オプションを選択して、データラベルをチャートに完璧に配置できます。Position プロ

パティは、LabelPosition 列挙に含まれる次の値を受け取ります。

プロパティプロパティ 説明説明

Auto Sets the label position automatically.

  FlexChart for WinForms

207 Copyright © GrapeCity, Inc. All rights reserved.         

Page 209: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Top ラベルをデータポイントの上設定します。

Bottom ラベルをデータポイントの下設定します。

Left ラベルをデータポイントの左に設定します。

Right ラベルをデータポイントの右に設定します。

Center ラベルをデータポイントの中央に設定します。

None ラベルを非表示にします。

Contentプロパティを使用することにより、データラベルの内容をカスタマイズして、系列名、インデックス値、またはデータポイ

ントの名前をさらに含めることができます。

Note: You can set the position of data labels at the series level. To set the data labels position at series level,navigate to Series in the Properties window. Click the ellipsis button and open Series Collection Editor. Then,navigate to the Position property, and select the position you want to set for each series.

次のコードは、データラベルに系列名およびデータポイント値を含めるようにContentプロパティを設定する方法を示していま

す。

C#

// Contentプロパティ設定しますflexChart1.DataLabel.Content = "{seriesName}\n{Days}\n{value}";

データラベルの書式設定データラベルの書式設定

FlexChart for WinForms  

208 Copyright © GrapeCity, Inc. All rights reserved.         

Page 210: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart では、データラベルを好みの方法で書式設定できるさまざまなオプションが提供されています。データラベルの境界

線の設定およびスタイル指定、対応するデータポイントとの接続、データラベルの表示方法のカスタマイズが可能です。

データラベルの境界線の設定とスタイル指定データラベルの境界線の設定とスタイル指定

境界線はデータラベルの見栄えをさらによくし、データラベルをさらに強調します。これは、本当に重要なデータをシームレスに

強調するために便利です。エンドユーザーは、重要な内容に集中することができます。

FlexChart では、境界線は、Border、BorderStyle などのさまざまなプロパティを使用して有効化およびカスタマイズできま

す。

次のコードスニペットは、境界線の設定およびカスタマイズ方法を示しています。

C#

// 境界線を有効にしますflexChart1.DataLabel.Border = true;

// 塗りつぶし色を設定しますflexChart1.DataLabel.BorderStyle.FillColor = System.Drawing.Color.LightYellow; // ストロークの色を設定しますflexChart1.DataLabel.BorderStyle.StrokeColor = System.Drawing.Color.Gray;

データポイントへのデータラベルの接続データポイントへのデータラベルの接続

データラベルを対応するデータポイントから離して配置した場合は、引き出し線を使用してそれらを接続することができます。

引き出し線は、データラベルをデータポイントに接続する線です。引き出し線は、特に、データラベルと関連するデータポイント

とのつながりを視覚的に示す必要がある場合に使用されます。

FlexChart では、データラベルを追加しても、デフォルトでは引き出し線は表示されません。しかし、引き出し線を有効にし、適

切な長さを設定して、視覚的にわかりやすいデータラベルのつながりをチャート内に表示できます。引き出し線を有効にするに

は、ConnectingLine プロパティを使用します。また、データラベルとデータポイントの距離を設定するには、Offset プロパティ

を使用します。

次のコードスニペットでは、この 2 つのプロパティを設定しています。

C#

  FlexChart for WinForms

209 Copyright © GrapeCity, Inc. All rights reserved.         

Page 211: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// 引き出し線を有効にしますflexChart1.DataLabel.ConnectingLine = true;

// 引き出し線の長さを設定しますflexChart1.DataLabel.Offset = 7;

データラベルの外観の変更データラベルの外観の変更

チャートでデータラベルの表示方法を変更することで、強力で効果的なデータ視覚化が可能になります。FlexChart にはさまざ

まなスタイルオプションが含まれており、これを使用して、見栄えのよい明確なデータラベルを作成できます。データラベルの

外観を変更するには、Style プロパティを使用します。

次のコードスニペットを参照してください。

C#

flexChart1.DataLabel.Style.Font = new System.Drawing.Font(FontFamily.GenericSerif, 8);flexChart1.DataLabel.Style.StrokeWidth = 1;

FlexChart for WinForms  

210 Copyright © GrapeCity, Inc. All rights reserved.         

Page 212: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

重なったデータラベルの管理重なったデータラベルの管理

A common issue pertaining to charts is the overlapping of data labels that represent data points. In most cases, overlapping occurs due to long text in data labels or large numbers of datapoints.

In case of overlapped data labels in FlexChart, it provides the following ways to manage the overlapping.

Auto Arrangement of Data LabelsHide Overlapped LabelsControl Appearance of Overlapped LabelsRotate Data LabelsTrim or Wrap Data Labels

Auto Arrangement of Data Labels

The easiest way to handle overlapping of data labels is to set the FlexChart to position the data labels automatically. For automatic positioning of data labels, you can setthe Position property to Auto. Moreover, you can also set the MaxAutoLabels property to set the maximum number of labels that can be positioned automatically.

When the Position property is set to Auto, the number of created data labels is limited by MaxAutoLabels property which is 100 by default. You can increase the value of MaxAutoLabelsproperty if necessary, but it may slow down the chart rendering since the label positioning algorithm becomes expensive in terms of performance when number of labels is large.

This approach may not provide an optimal layout when working with large data set and when there is no enough space for all data labels. In this case, it's recommended to reduce thenumber of data labels. For example, create a series with limited number of data points that should have labels, that is, chose to hide the labels at the individual series level.

// PositionおよびMaxAutoLabelsプロパティを設定しますflexChart1.DataLabel.Position = LabelPosition.Auto;flexChart1.DataLabel.MaxAutoLabels = 150;

The image below shows how FlexChart appears after setting the Position and MaxAutoLabels property.

LabelPosition.Top LabelPostion.Auto

Hide Overlapped Labels

In case of overlapped data labels in FlexChart, you can use the Overlapping property provided by DataLabel class. This approach is helpful when the developer wants to completely hide orshow the overlapped data labels.

// Overlappingプロパティを設定しますflexChart1.DataLabel.Overlapping = LabelOverlapping.Hide;

The Overlapping property accepts the following values in the LabelOverlapping enumeration.

Enumeration Description

Hide Hide overlapped data labels.

Show Show overlapped data labels.

The image below shows how FlexChart appears after setting the Overlapping property.

LabelOverlapping.Show LabelOverlapping.Hide

C#

C#

  FlexChart for WinForms

211 Copyright © GrapeCity, Inc. All rights reserved.         

Page 213: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Control Appearance of Overlapped Labels

Furthermore, you can use the OverlappingOptions property to specify additional label overlapping options that will help the user to effectively manage overlapping of data labels.

// OverlappingOptionsプロパティを設定しますflexChart1.DataLabel.OverlappingOptions = LabelOverlappingOptions.OutsidePlotArea;

The OverlappingOptions property accepts the following values in the LabelOverlappingOptions enumeration.

Enumeration Description

None No overlapping is allowed.

OutsidePlotArea Allow labels outside plot area.

OverlapDataPoints Allow overlapping with data points.

The image below shows how FlexChart appears after setting the LabelOverlappingOptions property.

LabelOverlappingOptions.None LabelOverlappingOptions.OutsidePlotArea

Rotate Data Labels

Another option to manage overlapping of data labels in FlexChart is to use the Angle property. The Angle property enables the user to set a specific rotation angle for data labels.

// Angleプロパティを設定しますflexChart1.DataLabel.Angle = 50;

Trim or Wrap Data Labels

C#

C#

FlexChart for WinForms  

212 Copyright © GrapeCity, Inc. All rights reserved.         

Page 214: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

To manage the content displayed in the data labels, in case of overlapping, you can either trim the data labels or wrap the data labels using ContentOptions property. Managing of datalabels using the ContenOptions property is dependent on MaxWidth and MaxLines property.

The MaxWidth property allows you to set the maximum width of a data label. In case the width of data label text exceeds the specified width, then you can either trim the data labels orwrap the data labels using the ContentOptions property.

The MaxLines property allows you to set the maximum number of lines in data label. This property helps you to limit the wrapped text to grow vertically. In case the wrapped text does notfit within the specified MaxWidth and MaxLines property values, then the last line gets trimmed with an ellipses(…).

// MaxWidthプロパティを設定しますflexChart1.DataLabel.MaxWidth = 25;// ContentOptionsプロパティを設定しますflexChart1.DataLabel.ContentOptions = ContentOptions.Trim;

The image below shows how FlexChart appears after setting the ContentOptions property.

ContentOptions.None ContentOptions.Trim

C#

複数のプロット領域複数のプロット領域

複数のプロット領域を使用すると、一方の軸は固定したまま、もう一方の軸方向には各系列を個別のプロット領域に表示して、

データの可視性を向上させることができます。

FlexChart では、1 つのチャート領域内で、系列ごとに異なるプロット領域を作成できます。FlexChart で複数のプロット領域を

作成し、それらを FlexChart.PlotAreas コレクションに追加します。さらに、プロット領域の行インデックス、列インデックス、高

さ、幅をカスタマイズできます。

次の図に、複数のプロット領域を含む FlexChart を示します。各プロット領域には 1 つの系列のデータが表示されます。

  FlexChart for WinForms

213 Copyright © GrapeCity, Inc. All rights reserved.         

Page 215: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードでは、車の加速度、速度、距離、時間の 4 つのメトリックに関するデータを使用します。このコードは、FlexChart で複数のプロット領域を実装する方法を示します。

Visual Basic

' 複数のプロット領域を作成して追加します。FlexChart1.PlotAreas.Add(New PlotArea() With { .Name = "plot1", .Row = 0})FlexChart1.PlotAreas.Add(New PlotArea() With { .Name = "plot2", .Row = 2})FlexChart1.PlotAreas.Add(New PlotArea() With { .Name = "plot3", .Row = 4})

' チャートタイプを指定します。FlexChart1.ChartType = C1.Chart.ChartType.Area

' 系列を作成、追加およびバインドします。FlexChart1.Series.Add(New Series() With { .Name = "加速", .Binding = "Acceleration"})

FlexChart1.Series.Add(New Series() With { .Name = "速度",

FlexChart for WinForms  

214 Copyright © GrapeCity, Inc. All rights reserved.         

Page 216: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

.Binding = "Velocity", .AxisY = New Axis() With { .Position = C1.Chart.Position.Left, .MajorGrid = True, .PlotAreaName = "plot2" }})

FlexChart1.Series.Add(New Series() With { .Name = "距離", .Binding = "Distance", .AxisY = New Axis() With { .Position = C1.Chart.Position.Left, .MajorGrid = True, .PlotAreaName = "plot3" }})

C#

// 複数のプロット領域を作成して追加します。flexChart1.PlotAreas.Add(new PlotArea { Name = "plot1", Row = 0 });flexChart1.PlotAreas.Add(new PlotArea { Name = "plot2", Row = 2 });flexChart1.PlotAreas.Add(new PlotArea { Name = "plot3", Row = 4 });

// チャートタイプを指定します。flexChart1.ChartType = C1.Chart.ChartType.Area;

// 系列を作成、追加およびバインドします。flexChart1.Series.Add(new Series(){ Name = "加速", Binding = "Acceleration",

});

flexChart1.Series.Add(new Series(){ Name = "速度", Binding = "Velocity", AxisY = new Axis() { Position = C1.Chart.Position.Left, MajorGrid = true, PlotAreaName = "plot2" },

});

flexChart1.Series.Add(new Series(){ Name = "距離", Binding = "Distance", AxisY = new Axis() { Position = C1.Chart.Position.Left, MajorGrid = true, PlotAreaName = "plot3" }});

  FlexChart for WinForms

215 Copyright © GrapeCity, Inc. All rights reserved.         

Page 217: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

近似曲線近似曲線

Trend lines are an important tool for analyzing data. Trend line indicates the general rate of increase or decrease of Ydata over X data in a chart. A common scenario is measuring the rate change of sales price over time. FlexChartcontrol supports trend lines through a built-in TrendLine class for ease of use during implementation. Trend lines aremost commonly used in Line, Column, Bar, or Scatter charts.

FlexChart supports the following regression and non-regression trend lines.

TrendLine.FitType Description

Linear A linear trend line is the straight line that most closely approximates the datain the chart. The data is linear, if the data pattern resembles a line.Equation - Y(x) = C0 + C1*x

Polynomial Polynomial trend lines are curved lines that are used with fluctuating data.They are useful for analyzing gains or losses over a large data set. When usinga polynomial trend line, it is important to also set the Order of the line, whichcan be determined by the number of fluctuations in the data.Equation - Y(x) = C0 + C1*x + C2*x2 + : + Cn-1*xn-1

Logarithmic Logarithmic trend line is a best-fit curved line that is most useful when therate of change in the data increases or decreases quickly and then levels out.A logarithmic trend line can use negative and/or positive values.Equation - Y(x) = C0 * ln(C1*x)

Power Power trend line is a curved line that is best used with data sets that comparemeasurements that increase at a specific rate — for example, the accelerationof a race car at one-second intervals. You cannot create a power trend line ifyour data contains zero or negative values.Equation - Y(x) = C0 * pow(x, C1)

Exponent Exponential trend line is a curved line that is most useful when data valuesrise or fall at increasingly higher rates. You cannot create an exponential trendline if your data contains zero or negative values.Equation - Y(x) = C0 * exp( C1*x)

Fourier Fourier trend line identifies patterns or cycles in a series data set. It removesthe effects of trends or other complicating factors from the data set, therebyproviding a good estimate of the direction that the data under analysis willtake in the future.Equation - Y(x) = C0 + C1 * cos(x) + C2 * sin(x) + C3 * cos(2*x) + C4 * sin(2*x)+ ...

MinX The minimum X-value on the chart.

MinY The minimum Y-value on the chart.

MaxX The maximum X-value on the chart.

MaxY The maximum Y-value on the chart.

AverageX The average X-value on the chart.

AverageY The average Y-value on the chart.

To implement trend line in FlexChart, use the TrendLine class that inherits the Series class. To begin with, create aninstance of TrendLine class, and then use the TrendLine object to specify its properties. Once, the associatedproperties are set, add the trend line to the FlexChart using Series.Add method.

FlexChart for WinForms  

216 Copyright © GrapeCity, Inc. All rights reserved.         

Page 218: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

The following image shows how FlexChart appears after adding a linear trend line.

Add the following code in Form1.cs file.

Public Partial Class Form1 Inherits Form

Private trendLine As C1.Win.Chart.TrendLine

Private dataList As ObservableCollection(Of DataItem) = New ObservableCollection(Of DataItem)()

Public Sub New() InitializeComponent() Dim rnt = New Random() For i As Integer = 1 To 30 - 1 dataList.Add(New DataItem() With {.X = i, .Y = rnt.[Next](100)}) Next

flexChart1.AxisY.Min = 0 flexChart1.AxisY.Max = 100 flexChart1.ChartType = ChartType.Scatter Dim serie = New Series() With {.Name = "Base DataList", .DataSource = dataList, .Binding = "Y", .BindingX = "X"}

Visual Basic

  FlexChart for WinForms

217 Copyright © GrapeCity, Inc. All rights reserved.         

Page 219: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

trendLine = New TrendLine() With {.Name = "Trendline", .DataSource = dataList, .Binding = "Y", .BindingX = "X", .Order = 4, .FitType = FitType.Linear} flexChart1.Series.Add(serie) flexChart1.Series.Add(trendLine) End Sub

Public Class DataItem

Private _y As Integer

Public Property X As Integer

Public Property Y As Integer Get Return _y End Get

Set(ByVal value As Integer) If value = _y Then Return _y = value End Set End Property End ClassEnd Class

public partial class Form1 : Form { C1.Win.Chart.TrendLine trendLine; ObservableCollection<DataItem> dataList = new ObservableCollection<DataItem>(); public Form1() { InitializeComponent();

var rnt = new Random(); for (int i = 1; i < 30; i++) { dataList.Add(new DataItem() { X = i, Y = rnt.Next(100) }); } flexChart1.AxisY.Min = 0; flexChart1.AxisY.Max = 100;

flexChart1.ChartType = ChartType.Scatter;

var serie = new Series() { Name = "Base DataList", DataSource = dataList, Binding = "Y",

C#

FlexChart for WinForms  

218 Copyright © GrapeCity, Inc. All rights reserved.         

Page 220: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

BindingX = "X", };

trendLine = new TrendLine() { Name = "Trendline", DataSource = dataList, Binding = "Y", BindingX = "X", Order = 4, FitType = FitType.Linear, }; flexChart1.Series.Add(serie); flexChart1.Series.Add(trendLine); } public class DataItem { int _y; public int X { get; set; }

public int Y { get { return _y; } set { if (value == _y) return; _y = value; } }} } }

エクスポートエクスポート

FlexChartでは、チャートを画像ファイルとしてエクスポートすることがサポートされるため、チャートを再利用や共有することが

できます。これを実現するには、数行のコードだけが必要です。

チャートをさまざまな画像形式にエクスポートする方法については、次のトピックを参照してください。

画像へのエクスポート

画像へのエクスポート画像へのエクスポート

FlexChart for WinForms では、FlexChart を複数の画像形式にエクスポートできます。サポートされる形式

は、PNG、JPEG、SVG です。

FlexChart を画像形式にエクスポートするには、SaveImage メソッドを使用します。このメソッドは、指定されたストリームを使

用してチャートを画像として保存します。SaveImage メソッドは、画像を保存するためのパラメータとして、ストリーム、画像形

式、高さ、幅、背景色を受け取ります。

このトピックは、クイックスタートセクションで作成されたサンプルを使用して、ボタンクリックで FlexChart を画像にエクスポート

するための実装方法を説明します。

次の図に、チャートをご希望の画像形式にエクスポートするためのボタンがクリックされたチャートを示します。

  FlexChart for WinForms

219 Copyright © GrapeCity, Inc. All rights reserved.         

Page 221: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ボタンをクリックしてチャートを画像にエクスポートするには、次のコードを追加します。

C#

private void button1_Click(object sender, EventArgs e) { var dialog = new SaveFileDialog() { Filter = "PNG|*.png|JPEG |*.jpeg|SVG|*.svg" }; if (dialog.ShowDialog() == DialogResult.OK) { using (Stream stream = dialog.OpenFile()) { var extension = dialog.FileName.Split('.')[1]; ImageFormat fmt = (ImageFormat)Enum.Parse(typeof(ImageFormat), extension, true); flexChart1.SaveImage(stream, fmt, 500, 800); }

C#

FlexChart for WinForms  

220 Copyright © GrapeCity, Inc. All rights reserved.         

Page 222: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

} }

Private Sub button1_Click(sender As Object, e As EventArgs) Dim dialog = New SaveFileDialog() With { _ Key .Filter = "PNG|*.png|JPEG |*.jpeg|SVG|*.svg" _ } If dialog.ShowDialog() = DialogResult.OK Then Using stream As Stream = dialog.OpenFile() Dim extension = dialog.FileName.Split("."C)(1) Dim fmt As ImageFormat = DirectCast([Enum].Parse(GetType(ImageFormat), extension, True), ImageFormat) flexChart1.SaveImage(stream, fmt, 500, 800) End Using End IfEnd Sub

Visual Basic

  FlexChart for WinForms

221 Copyright © GrapeCity, Inc. All rights reserved.         

Page 223: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexPie円グラフは、一般に系列内の項目のサイズを円全体のパーセンテージとして表現するために使用されます。理想的には、円

グラフは、いくつかの正の値から成る 1 つの系列だけをプロットする場合に使用されます。カテゴリの数は 7 個以下です。

FlexPie コントロールを使用すると、データポイントを円グラフのいくつかのセグメントとして表すカスタマイズされた円グラフを

作成できます。各セグメントの弧の長さが、そのセグメントの値を表現します。

セグメントに複数の色を使用すると、円グラフが見やすくなります。通常、各セグメントによって表される値は、ラベルで表示さ

れます。

主な機能主な機能

ヘッダーとフッターヘッダーとフッター

単純なプロパティを使用して、タイトルやフッターテキストを設定できます。

凡例凡例

必要に応じて凡例の位置を変更できます。

選択選択

選択モードを変更し、円グラフのセグメントの外観をカスタマイズできます。

分割およびドーナツ円グラフ分割およびドーナツ円グラフ

単純なプロパティを使用して、円グラフを分割円グラフまたはドーナツ円グラフに変換できます。

Data Labels: Add, style, format, set the position of data labels and manage the overlapped data labels on thechart.

クイックスタートクイックスタート

このクイックスタートでは、Visual Studio で単純な FlexPie アプリケーションを作成して実行する手順を説明します。

次の手順を実行して、アプリケーションの実行時に FlexPie がどのように表示されるかを理解してください。

手順手順 1:アプリケーションへの:アプリケーションへの FlexPie の追加の追加

手順手順 2:データソースへの:データソースへの FlexPie の連結の連結

手順手順 3:アプリケーションの実行:アプリケーションの実行

FlexChart for WinForms  

222 Copyright © GrapeCity, Inc. All rights reserved.         

Page 224: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

手順手順 1:アプリケーションへの:アプリケーションへの FlexPie の追加の追加

1. Visual Studio で Windows フォームアプリケーションフォームアプリケーションを作成します。

2. FlexPie コントロールを Form にドラッグアンドドロップします。

以下の dll が自動的にアプリケーションに追加されます。

C1.Win.FlexChart.4.dll

手順手順 2:データソースへの:データソースへの FlexPie の連結の連結

Form_Load イベントに次のコードを追加します。

Visual Basic

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

' 円グラフセグメントと凡例のラベルを含むフィールドを連結します FlexPie1.BindingName = "Name"

' 円グラフセグメントの数値を含むフィールドを連結します FlexPie1.Binding = "Value"

' FlexPie をデータソースに連結します FlexPie1.DataSource = New [Object]() {New With { Key .Value = 18, Key .Name = "米国" }, New With { Key .Value = 16, Key .Name = "イギリス" }, New With { Key .Value = 18, Key .Name = "中国" }, New With { Key .Value = 16, Key .Name = "フランス" }, New With { Key .Value = 17, Key .Name = "ドイツ" }, New With { Key .Value = 15, Key .Name = "イタリア" }}

' 凡例の位置を設定します FlexPie1.Legend.Position = C1.Chart.Position.RightEnd Sub

C#

// 円グラフと凡例のラベルを含むフィールドを連結しますflexPie1.BindingName = "Name";

// 円グラフセグメントの数値を含むフィールドを連結しますflexPie1.Binding = "Value";

// FlexPie をデータソースに連結しますflexPie1.DataSource = new Object[] { new {Value=18, Name="米国"}, new {Value=16, Name="イギリス"}, new {Value=18, Name="中国"},

  FlexChart for WinForms

223 Copyright © GrapeCity, Inc. All rights reserved.         

Page 225: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

new {Value=16, Name="フランス"}, new {Value=17, Name="ドイツ"}, new {Value=15, Name="イタリア"} };

// 凡例の位置を設定しますflexPie1.Legend.Position = C1.Chart.Position.Right;

手順手順 3:アプリケーションの実行:アプリケーションの実行

[F5]キーを押してアプリケーションを実行し、次のような出力を確認します.

アニメーションアニメーション

FlexPie allows you to control how the animation is applied to each series and series elements. It allows you to enablechart animation effects through a combination of different properties available in the FlexPie class. These propertiesallow you to apply duration, delay and an easing function for each animation. The animation effects are applied in oneof the two scenarios, either while loading the chart for the first time or while the chart is redrawn after modifications.

Load

Implement animation when the data is first loaded into the chart, example when a new series is added to the FlexPie,you can apply animation properties. The following image shows how animation works while loading the FlexPiecontrol.

The following image shows how animation works in the FlexPie control.

FlexChart for WinForms  

224 Copyright © GrapeCity, Inc. All rights reserved.         

Page 226: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Use the following code to implement animation in the FlexPie control.

C#

// アニメーション

flexPie1.AnimationSettings = C1.Chart.AnimationSettings.Load;flexPie1.AnimationUpdate.Easing = C1.Chart.Easing.Linear;flexPie1.AnimationUpdate.Duration = 500;flexPie1.AnimationLoad.Type = C1.Chart.AnimationType.Series;

Every animation scenario has its own set of options that can be set independently in the FlexPie control. These optionsinclude various properties describing the corresponding animation.

To implement animation in the FlexPie control, you need make use of the following properties.

1. AnimationSettings -This property allows the user to apply settings for the animation. It allows the user tospecify that when to apply animation in the FlexPie control. This property accepts values from theAnimationSettings enumeration provided by the FlexPie class. The AnimationSettings enumeration has specialflags to control axes animation (smooth transition) so that you can enable or disable smooth axis transition forloading or updating data.

2. AnimationOptions - The AnimationLoad and AnimationUpdate properties includes the following options.

1. Duration: This property allows you to set the duration of animation in the FlexPie control. This propertyaccepts an integer value which defines duration in milliseconds.

2. Easing: This property allows the user to set different type of easing functions on the FlexPie control. Thisproperty accepts values from the Easing enumeration provided by the C1.Chart namespace.

3. Type: This property allows you to set the animation type on the FlexPie control. This property acceptsthe following values from the AnimationType enumeration provided by the C1.Chart namespace.

  FlexChart for WinForms

225 Copyright © GrapeCity, Inc. All rights reserved.         

Page 227: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

All - All plot elements animate at once from the bottom of the plot area.Series - Each series animates one at a time from the bottom of the plot area.Points - The plot elements appear one at a time from left to right.

ドーナツ円グラフドーナツ円グラフ

FlexPie では、InnerRadius プロパティを使用してドーナツ円グラフを作成できます。

内側半径は、円グラフの半径に対する割合で表されます。InnerRadius プロパティのデフォルト値は 0 です。その場合は円グ

ラフが作成されます。このプロパティを 0 より大きい値に設定すると、中央に穴のある円グラフが作成されます。これは、ドー

ナツグラフとも呼ばれます。

次のコードスニペットは、InnerRadius プロパティを設定する方法を示します。

Visual Basic

' InnerRadiusプロパティを設定しますflexPie1.InnerRadius = 0.4

C#

// InnerRadiusプロパティを設定しますflexPie1.InnerRadius = 0.4D;

分割円グラフ分割円グラフ

Offset プロパティを使用して、FlexPie の中心から円グラフのセグメントを離して、分割円グラフを生成できます。このプロパ

ティは、円グラフのセグメントを中心から離す距離を決定する double 値を受け入れます。

次のコードスニペットを参照してください。

Visual Basic

' Offsetプロパティを設定します

FlexChart for WinForms  

226 Copyright © GrapeCity, Inc. All rights reserved.         

Page 228: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexPie1.Offset = 0.6

C#

// Offsetプロパティを設定しますflexPie1.Offset = 0.6D;

ヘッダーとフッターヘッダーとフッター

FlexChartBase の Header プロパティを設定することで、FlexPie コントロールにヘッダーを追加できます。コントロールには、

ヘッダーのほかにフッターも追加できます。それには、FlexChartBase の Footer プロパティを設定します。

この 2 つのプロパティの設定については、次のコードスニペットを参照してください。

Visual Basic

' ヘッダーを設定しますFlexPie1.Header.Content = "売上データ"

' フッターを設定しますFlexPie1.Footer.Content = "2015年"

C#

// ヘッダーを設定しますflexPie1.Header.Content = "売上データ";

// フッターを設定しますflexPie1.Footer.Content = "2015年";

  FlexChart for WinForms

227 Copyright © GrapeCity, Inc. All rights reserved.         

Page 229: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexPie の凡例の凡例

FlexPie では、FlexChartBase の Legend プロパティを使用して、凡例を表示する位置を指定できます。

以下のコードスニペットは、プロパティの設定方法を示します。

Visual Basic

' 凡例を設定しますFlexPie1.Legend.Position = C1.Chart.Position.Bottom

C#

// 凡例を設定しますflexPie1.Legend.Position = C1.Chart.Position.Bottom;

FlexChart for WinForms  

228 Copyright © GrapeCity, Inc. All rights reserved.         

Page 230: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

選択選択

コントロール上の任意の場所をクリックしたときに、FlexPie のどの要素を選択するかを決めることができます。それに

は、SelectionMode プロパティを設定します。このプロパティは 3 つのオプションを提供します。

None:どの要素も選択されません。

Point:ユーザーがクリックした円グラフセグメントが強調表示されます。

Series:円全体を強調表示します。

SelectionMode プロパティを Point に設定すると、SelectedItemPosition プロパティを設定することで、選択されている円

グラフセグメントの位置を変更できます。また、選択されている円グラフセグメントを FlexPie の中心から離すことができます。

それには、SelectedItemOffset プロパティを設定します。

Visual Basic

' SelectionModeプロパティを設定しますFlexPie1.SelectionMode = C1.Chart.ChartSelectionMode.Point

' SelectedItemPositionプロパティを設定しますFlexPie1.SelectedItemPosition = C1.Chart.Position.Top

' SelectedItemOffsetプロパティを設定しますFlexPie1.SelectedItemOffset = 0.3

C#

// SelectionModeプロパティを設定しますflexPie1.SelectionMode = C1.Chart.ChartSelectionMode.Point;

// SelectedItemPositionプロパティを設定しますflexPie1.SelectedItemPosition = C1.Chart.Position.Top;

// SelectedItemOffsetプロパティを設定しますflexPie1.SelectedItemOffset = 0.3D;

  FlexChart for WinForms

229 Copyright © GrapeCity, Inc. All rights reserved.         

Page 231: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexPie のデータラベルのデータラベル

Data labels provide additional information about the data points. These labels make a chart easier to understandbecause they show details about a slice in the pie.

To understand the working of data labels in FlexPie chart, refer to the following sections.

Adding and Positioning Data LabelsLearn how to add data labels and set their position on the chart.

Formatting Data LabelsLearn how to perform styling and formatting of data labels.

Managing Overlapped Data LabelsLearn how to manage overlapping data labels in FlexPie chart.

データラベルの追加と配置データラベルの追加と配置

With FlexPie chart, you can configure the arrangement and display properties for data labels depending on what suitsyour needs the best. By default, the data labels are not displayed on the chart, however, you can enable them bysetting the Position and Content properties of DataLabel class.Here, the Position property sets position of the datalabels by accepting values from the PieLabelPosition enumeration and the Content property gets or sets content forthe data labels. The PieLabelPosition enumeration specifies various positions of data labels on the pie chartincluding automatic label position.

The example code below uses the Position and Content properties to enable data labels and set their position.

// コンテンツプロパティを設定しますflexPie1.DataLabel.Content = "{seriesName}\n{Name}\n{value}";

// データラベルの位置を設定しますflexPie1.DataLabel.Position = C1.Chart.PieLabelPosition.Circular;

C#

FlexChart for WinForms  

230 Copyright © GrapeCity, Inc. All rights reserved.         

Page 232: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

データラベルの書式設定データラベルの書式設定

FlexPie provides various options to format data labels according to your requirements. You can use connecting linesto connect the data labels, set and style borders of data labels, and customize the appearance of data labels.

The topic comprises of three sections:

Setting and Styling BordersConnecting DataLabels to Data PointsModifying Appearance

Setting and Styling Borders

To add and style borders to FlexPie data labels, set the Border and BorderStyle properties providedby DataLabel class.

Use the following code snippet to add borders to data labels of FlexPie.

// 境界線を有効にしますflexPie1.DataLabel.Border = true; // 塗りの色を設定しますflexPie1.DataLabel.BorderStyle.FillColor = Color.Beige;

// ストロークの色と幅を設定しますflexPie1.DataLabel.BorderStyle.StrokeColor = Color.Gray;flexPie1.DataLabel.BorderStyle.StrokeWidth = 2;

C#

  FlexChart for WinForms

231 Copyright © GrapeCity, Inc. All rights reserved.         

Page 233: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Connecting DataLabels to Data Points

In case the data labels are placed away from the data points, you can connect them using connecting lines.

To enable connecting lines in FlexPie chart, you need to use the ConnectingLine property.

Use the following code snippet to set the connecting lines.

// 接続線を有効にしますflexPie1.DataLabel.ConnectingLine = true;

C#

FlexChart for WinForms  

232 Copyright © GrapeCity, Inc. All rights reserved.         

Page 234: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Modifying Appearance

FlexPie includes various styling options, to enhance the clarity of data labels. To modify the appearance of FlexPiechart, you need to use the Style property. It allows you to modify the font family, fill color, use stroke brush for datalabels, set width for stroke brush and more.

In the example code, we have modified the font used in the chart and set the stroke width property. Use the followingcode snippet to modify the appearance of the chart.

// データラベルの外観を変更しますflexPie1.DataLabel.Style.Font = new Font(FontFamily.GenericSansSerif, 8);flexPie1.DataLabel.Style.StrokeWidth = 2;

C#

  FlexChart for WinForms

233 Copyright © GrapeCity, Inc. All rights reserved.         

Page 235: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

重なったデータラベルの管理重なったデータラベルの管理

A common issue pertaining to charts is overlapping of data labels that represent data points. In mostcases, overlapping occurs due to long text in data labels or large numbers of data points.

To manage overlapped data labels in FlexPie chart, you can make use of Overlapping property providedby PieDataLabel class. The Overlapping property accepts the following values from the PieLabelOverlappingenumeration.

Enumeration Description

PieLabelOverlapping.Default Show all labels including the overlapping ones.

PieLabelOverlapping.Hide Hides the overlapping labels, if its content is larger than the corresponding piesegment.

PieLabelOverlapping.Trim Trim overlapping data labels, if its width is larger than the corresponding pie segment.

Use the following code to manage overlapping data labels.

// オーバーラッププロパティを設定するflexPie1.DataLabel.Overlapping = C1.Chart.PieLabelOverlapping.Trim;

C#

FlexChart for WinForms  

234 Copyright © GrapeCity, Inc. All rights reserved.         

Page 236: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

The following image shows FlexPie appears after setting the Overlapping property.

複数の円グラフ複数の円グラフ

In some scenarios, you might want to visualize a bit more than a single pie chart, and use multiple Pie Charts together.The FlexPie control empowers a user to create multiple Pie Charts based on the same data source. The user cancreate multiple pie charts by simply specifying several comma-separated strings of field names in the Bindingproperty of FlexPie class. This means you don't have to add any additional FlexPie controls for multiple Pie Charts.

Multiple Pie Charts can help compare data across different groups. It is also the right visualization choice to presentkey indicators/facts about your topic of interest.

The following image shows two Pie Charts, Online Sales and Offline Sales for five different products. Computer,Software, CellPhones, Video Games and Musical Instruments.

  FlexChart for WinForms

235 Copyright © GrapeCity, Inc. All rights reserved.         

Page 237: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Adding multiple pie charts using the same data source is depicted programmatically below:

C#

flexPie1.DataSource = data;flexPie1.BindingName = "Name";flexPie1.Binding = "Online,Offline";

flexPie1.Titles = new[] { "Online Sales", "Offline Sales" };flexPie1.Header.Content = "Product Sales By Season";flexPie1.Header.Style.Font = new Font("Times New Roman", 15, FontStyle.Bold);flexPie1.Legend.Position = C1.Chart.Position.Auto;flexPie1.Legend.Style.Font = new Font("Times New Roman", 12, FontStyle.Regular);

FlexChart for WinForms  

236 Copyright © GrapeCity, Inc. All rights reserved.         

Page 238: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

SunBurstSunburst は、マルチレベル円グラフとも呼ばれ、同心円で表される複数の層から成る階層化データを視覚化するために適し

ています。中心の円はルートノードを表し、データは中心から外に向けて広がります。内側の円の 1 つのセクションは、外側の

円のいくつかのセクションと階層的な関係を持ち、外側の円のセクションは親セクションの角度範囲に収まります。

Sunburst チャートを使用すると、外側の輪と内側の輪の関係を視覚化できます。たとえば、3 年間の各四半期の売上レポート

を表示したいとします。Sunburst チャートを使用すると、特定の月の売上レポートを強調表示して、対応する四半期との関係

を表すことができます。

Sunburst チャートの機能の詳細については、次の各リンクをクリックしてください。

クイックスタート

主要な機能

凡例とタイトル

選択

主な機能主な機能

Sunburst コントロールは、本格的な見栄えのアプリケーションを作成できる効率的で便利なコントロールです。以下に示す多く

の機能が含まれています。

ドーナツドーナツ Sunburst チャートチャート

InnerRadius プロパティを設定して、ドーナツ Sunburst チャートを作成できます。このプロパティのデフォルト値は 0 です。このプロパティを 0 より大きい値に設定すると、中央に穴が開き、ドーナツ Sunburst チャートが作成されます。

分割分割 Sunburst チャートチャート

Offset プロパティを設定して、分割 Sunburst チャートを作成できます。このプロパティのデフォルト値は 0 です。この

プロパティを設定すると、Sunburst チャートの中心からセグメントが離され、これにより、分割 Sunburst チャートが作成

されます。

反転反転 Sunburst チャートチャート

  FlexChart for WinForms

237 Copyright © GrapeCity, Inc. All rights reserved.         

Page 239: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Reversed プロパティを設定して、反転した Sunburst チャートを作成できます。このプロパティは、デフォルト値として

false を受け取ります。このプロパティを true に設定すると、反時計回り方向の角度で描画される反転 Sunburstチャートが作成されます。

開始角度開始角度

StartAngle プロパティを設定して、開始角度を指定できます。このプロパティは、double 型の値を受け取ります。開始

角度は、時計回り方向に Sunburst グラフセグメントの描画を開始する角度(度単位)です。デフォルト値は 9 時の位置

です。

パレットパレット

さまざまなカラーパレットを使用して、Sunburst チャートをさらに効果的で見栄えのするチャートにすることができます。

チャートパレットを指定するには、Palette プロパティを設定します。このプロパティで、セグメントをレンダリングする際

に使用されるデフォルトの色の配列を指定できます。このプロパティは、Palette 列挙に含まれる値を受け取ります。

凡例凡例

Sunburst チャートの凡例に対して、方向、位置、スタイルの設定など、さまざまなカスタマイズを行うことができます。詳

細については、「凡例とタイトル」を参照してください。

ヘッダーとフッターヘッダーとフッター

単純なプロパティを使用して、Sunburst チャートのヘッダーとフッターを設定およびカスタマイズできます。詳細につい

ては、「凡例とタイトル」を参照してください。

選択選択

選択モードを変更したり、選択されているセグメントの位置や外観をカスタマイズできます。詳細については、「選択」を

参照してください。

Data Labels: Add, style, format, set the position of data labels and manage the overlapped data labels on thechart. For more information, refer Data Labels.

クイックスタートクイックスタート

このクイックスタートでは、Visual Studio で単純な Sunburst アプリケーションを作成して実行する手順を説明します。

Sunburst チャートの使用をすぐに開始し、アプリケーション実行時にどのように表示されるかを確認するには、次の手順に従います。

1. アプリケーションへのアプリケーションへの Sunburst チャートの追加チャートの追加

2. データソースへのデータソースへの Sunburst チャートの連結チャートの連結

3. アプリケーションの実行アプリケーションの実行

次の図に、上記の手順を完了した後に、基本的な Sunburst チャートがどのように表示されるかを示します。

手順手順 1:アプリケーションへの:アプリケーションへの Sunburst チャートの追加チャートの追加

1. Visual Studio で Windows フォームアプリケーションフォームアプリケーションを作成します。

2. Sunburst コントロールを Form にドラッグアンドドロップします。

FlexChart for WinForms  

238 Copyright © GrapeCity, Inc. All rights reserved.         

Page 240: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次の dll が自動的にアプリケーションに追加されます。

C1.Win.C1DX.4.dllC1.Win.C1Input.4.dllC1.Win.FlexChart.4.dll

手順手順 2:データソースへの:データソースへの Sunburst チャートの連結チャートの連結

この手順では、まず、2013、2014、2015 年の各 4 四半期分(Q1、Q2、Q3、Q4)のランダムな売上データを生成する DataService クラスを作

成します。次に、FlexPie クラスで提供される DataSource プロパティを使用して、作成したクラスに Sunburst チャートを連結します。次に、

FlexPie クラスの Binding および BindingName プロパティを使用して、Sunburst グラフセグメントの数値とラベルをそれぞれ指定します。

1. クラス DataService を追加し、次のコードを追加します。

Visual Basic

Imports System.Collections.GenericImports System.LinqImports System.TextImports System.Threading.Tasks

Namespace SunburstQuickStart Class DataService Private rnd As New Random() Shared _default As DataService

Public Shared ReadOnly Property Instance() As DataService Get If _default Is Nothing Then _default = New DataService() End If

Return _default End Get End Property Public Shared Function CreateFlatData() As List(Of FlatDataItem) Dim rnd As Random = Instance.rnd Dim years As New List(Of String)() Dim times As New List(Of List(Of String))() From { New List(Of String)() From { "1月", "2月", "3月" }, New List(Of String)() From { "4月", "5月", "6月" }, New List(Of String)() From { "7月", "8月", "9月" }, New List(Of String)() From { "10月", "11月", "12月" } }

Dim items As New List(Of FlatDataItem)() Dim yearLen = Math.Max(CInt(Math.Round(Math.Abs(5 - rnd.NextDouble() * 10))), 3) Dim currentYear As Integer = DateTime.Now.Year For i As Integer = yearLen To 1 Step -1 years.Add((currentYear - i).ToString()) Next Dim quarterAdded = False years.ForEach(Function(y) Dim i = years.IndexOf(y) Dim addQuarter = rnd.NextDouble() > 0.5

  FlexChart for WinForms

239 Copyright © GrapeCity, Inc. All rights reserved.         

Page 241: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

If Not quarterAdded AndAlso i = years.Count - 1 Then addQuarter = True End If If addQuarter Then quarterAdded = True times.ForEach(Function(q) Dim addMonth = rnd.NextDouble() > 0.5 Dim idx As Integer = times.IndexOf(q) Dim quar = "Q" + (idx + 1) If addMonth Then q.ForEach(Function(m) items.Add(New FlatDataItem() With { .Year = y, .Quarter = quar, .Month = m, .Value = rnd.[Next](30, 40) })

End Function) Else items.Add(New FlatDataItem() With { .Year = y, .Quarter = quar, .Value = rnd.[Next](80, 100) }) End If

End Function) Else items.Add(New FlatDataItem() With { .Year = y.ToString(), .Value = rnd.[Next](80, 100) }) End If

End Function)

Return items End Function End ClassEnd Namespace

C#using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;

namespace SunburstQuickStart{ class DataService { Random rnd = new Random(); static DataService _default;

public static DataService Instance { get { if (_default == null) { _default = new DataService(); }

return _default; } } public static List<FlatDataItem> CreateFlatData() { Random rnd = Instance.rnd;

FlexChart for WinForms  

240 Copyright © GrapeCity, Inc. All rights reserved.         

Page 242: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

List<string> years = new List<string>(); List<List<string>> times = new List<List<string>>() { new List<string>() { "1月", "2月", "3月"}, new List<string>() { "4月", "5月", "6月"}, new List<string>() { "7月", "8月", "9月"}, new List<string>() { "10月", "11月", "12月" } };

List<FlatDataItem> items = new List<FlatDataItem>(); var yearLen = Math.Max((int)Math.Round(Math.Abs(5 - rnd.NextDouble() * 10)), 3); int currentYear = DateTime.Now.Year; for (int i = yearLen; i > 0; i--) { years.Add((currentYear - i).ToString()); } var quarterAdded = false; years.ForEach(y => { var i = years.IndexOf(y); var addQuarter = rnd.NextDouble() > 0.5; if (!quarterAdded && i == years.Count - 1) { addQuarter = true; } if (addQuarter) { quarterAdded = true; times.ForEach(q => { var addMonth = rnd.NextDouble() > 0.5; int idx = times.IndexOf(q); var quar = "Q" + (idx + 1); if (addMonth) { q.ForEach(m => { items.Add(new FlatDataItem() { Year = y, Quarter = quar, Month = m, Value = rnd.Next(30, 40) }); }); } else { items.Add(new FlatDataItem() { Year = y, Quarter = quar, Value = rnd.Next(80, 100) }); } }); } else { items.Add(new FlatDataItem() { Year = y.ToString(), Value = rnd.Next(80, 100) }); } });

return items; } }}

  FlexChart for WinForms

241 Copyright © GrapeCity, Inc. All rights reserved.         

Page 243: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

2. コードビューコードビュー(Form1.cs)に切り替えて、次のコードを追加します。

Visual Basic

Imports SunburstQuickStart.SunburstQuickStart

Partial Public Class Form1 Inherits Form Public Sub New() InitializeComponent()

' データソースを指定します Sunburst1.DataSource = DataService.CreateFlatData()

' 円グラフセグメントの値を含むフィールドを指定します Sunburst1.Binding = "Value"

' 円グラフセグメントと凡例の値を含むフィールドを指定します Sunburst1.BindingName = "Year,Quarter,Month"

' データラベルの内容を設定します Sunburst1.DataLabel.Content = "{name}"

' データラベルの位置を設定します Sunburst1.DataLabel.Position = C1.Chart.PieLabelPosition.Inside End SubEnd Class

Public Class FlatDataItem Public Property Year() As String Get Return m_Year End Get Set m_Year = Value End Set End Property Private m_Year As String Public Property Quarter() As String Get Return m_Quarter End Get Set m_Quarter = Value End Set End Property Private m_Quarter As String Public Property Month() As String Get Return m_Month End Get Set m_Month = Value End Set End Property Private m_Month As String Public Property Value() As Double Get Return m_Value End Get Set m_Value = Value End Set End Property Private m_Value As DoubleEnd Class

C#using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;

FlexChart for WinForms  

242 Copyright © GrapeCity, Inc. All rights reserved.         

Page 244: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;

namespace SunburstQuickStart{ public partial class Form1 : Form { public Form1() { InitializeComponent();

// データソースを指定します sunburst1.DataSource = DataService.CreateFlatData();

// 円グラフセグメントの値を含むフィールドを指定します sunburst1.Binding = "Value";

// 円グラフセグメントと凡例の値を含むフィールドを指定します sunburst1.BindingName = "Year,Quarter,Month";

// データラベルの内容を設定します sunburst1.DataLabel.Content = "{name}";

// データラベルの位置を設定します sunburst1.DataLabel.Position = C1.Chart.PieLabelPosition.Inside; } } public class FlatDataItem { public string Year { get; set; } public string Quarter { get; set; } public string Month { get; set; } public double Value { get; set; } }}

手順手順 3:アプリケーションの実行:アプリケーションの実行

[F5]キーを押してアプリケーションを実行し、Sunburst チャートがどのように表示されるかを確認します.

凡例とタイトル凡例とタイトル

凡例凡例

凡例は、系列のエントリを名前と定義済みの記号で表示します。Sunburst では、以下のように FlexChartBase クラスの

Legend プロパティを使用して、凡例にアクセスし、さまざまなカスタマイズを実行できます。

方向方向:Legend クラスで提供されている Orientation プロパティを使用して、凡例の方向を、水平、垂直、または自動

に設定できます。このプロパティは、Orientation 列挙に含まれる値のいずれかに設定できます。

位置位置:Position 列挙に含まれる値を受け取る Position プロパティを使用して、凡例の位置を、上、下、左、右、または

自動配置に設定できます。Position プロパティを None に設定すると、凡例は非表示になります。

スタイル設定スタイル設定:Style プロパティからアクセスできるスタイル設定プロパティを使用して、ストローク色の設定、フォントの

変更など、凡例の外観全体をカスタマイズできます。スタイル設定プロパティ StrokeColor および

Font は、ChartStyle クラスから提供されます。

タイトルおよびタイトルのスタイル設定タイトルおよびタイトルのスタイル設定:凡例タイトルは、文字列を受け取る Title プロパティを使用して指定できます。

タイトルを設定したら、TitleStyle プロパティを使用してタイトルのスタイルを設定できます。このプロパティから、

ChartStyle クラスのカスタマイズプロパティにアクセスできます。

ヘッダーとフッターヘッダーとフッター

ヘッダーとフッターは、チャートの上と下に表示される説明テキストで、チャートデータ全体に関する情報を提供します。

  FlexChart for WinForms

243 Copyright © GrapeCity, Inc. All rights reserved.         

Page 245: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Sunburst チャートのヘッダーとフッターには、FlexChartBase クラスの Header プロパティと Footer プロパティをそれぞれ使

用してアクセスできます。ヘッダーとフッターに対しては、以下のカスタマイズが可能です。

フォントフォント:ヘッダーとフッターのフォントファミリ、フォントサイズ、フォントスタイルを変更できます。それに

は、ChartTitle クラスの Style プロパティからアクセスできる ChartStyle クラスの Font プロパティを使用します。

ストローク色ストローク色:ChartStyle クラスの StrokeColor プロパティを使用して、タイトルのストローク色を選択します。

ストロークストローク:Stroke プロパティを使用してタイトルのストロークを設定し、見栄えをさらによくすることができます。

次の図に、凡例とタイトルを設定した Sunburst チャートを示します。

次のコードスニペットは、凡例およびタイトルをカスタマイズするためにそれぞれのプロパティを設定する方法を示しています。

このコードでは、「クイックスタート」で作成したサンプルを使用します。

Visual Basic

' 凡例の向きを設定しますSunburst1.Legend.Orientation = C1.Chart.Orientation.Vertical

' 凡例の位置を設定しますSunburst1.Legend.Position = C1.Chart.Position.Auto

' 凡例のストローク色を設定しますSunburst1.Legend.Style.StrokeColor = Color.DarkCyan

' 凡例のフォントを設定しますSunburst1.Legend.Style.Font = New Font("Arial", 9, FontStyle.Regular)

' 凡例のタイトルを設定します Sunburst1.Legend.Title = "年"

' 凡例のタイトルのストローク色を設定しますSunburst1.Legend.TitleStyle.StrokeColor = Color.Blue

FlexChart for WinForms  

244 Copyright © GrapeCity, Inc. All rights reserved.         

Page 246: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 凡例のタイトルフォントを設定しますSunburst1.Legend.TitleStyle.Font = New Font("Arial", 10, FontStyle.Bold)

' ヘッダーを設定しますSunburst1.Header.Content = "四半期売上高"

' ヘッダーのフォントを設定しますSunburst1.Header.Style.Font = New Font("Arial", 11, FontStyle.Bold)

' ヘッダーのストロークを設定しますSunburst1.Header.Style.Stroke = Brushes.Brown

' フッターを設定しますSunburst1.Footer.Content = "XYZ会社"

' フッタフォントを設定しますSunburst1.Footer.Style.Font = New Font("Arial", 10, FontStyle.Bold)

' フッターのストロークを設定しますSunburst1.Footer.Style.Stroke = Brushes.Brown

C#

// 凡例の向きを設定しますsunburst1.Legend.Orientation = C1.Chart.Orientation.Vertical;

// 凡例の位置を設定しますsunburst1.Legend.Position = C1.Chart.Position.Auto;

// 凡例のストローク色を設定しますsunburst1.Legend.Style.StrokeColor = Color.DarkCyan;

// 凡例のフォントを設定しますsunburst1.Legend.Style.Font = new Font("Arial", 9, FontStyle.Regular);

// 凡例のタイトルを設定します sunburst1.Legend.Title = "年";

// 凡例のタイトルのストローク色を設定しますsunburst1.Legend.TitleStyle.StrokeColor = Color.Blue;

// 凡例のタイトルフォントを設定しますsunburst1.Legend.TitleStyle.Font = new Font("Arial", 10, FontStyle.Bold);

// ヘッダーを設定しますsunburst1.Header.Content = "四半期売上高";

// ヘッダーのフォントを設定しますsunburst1.Header.Style.Font = new Font("Arial", 11, FontStyle.Bold);

// ヘッダーのストロークを設定しますsunburst1.Header.Style.Stroke = Brushes.Brown;

// フッターを設定しますsunburst1.Footer.Content = "XYZ会社";

// フッタフォントを設定します

  FlexChart for WinForms

245 Copyright © GrapeCity, Inc. All rights reserved.         

Page 247: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

sunburst1.Footer.Style.Font = new Font("Arial", 10, FontStyle.Bold);

// フッターのストロークを設定しますsunburst1.Footer.Style.Stroke = Brushes.Brown;

選択選択

Sunburst グラフセグメントをクリックして、データポイントを選択できます。FlexChartBase クラスで提供されている

SelectionMode プロパティを ChartSelectionMode 列挙に含まれる次の値のいずれかに設定できます。

None(デフォルト)(デフォルト):選択は無効です。

Point:ポイントが選択されます。

選択をカスタマイズするには、FlexPie クラスで提供される SelectedItemOffset および SelectedItemPosition プロパティを

使用します。SelectedItemOffset プロパティを使用すると、選択されている Sunburst グラフセグメントをコントロールの中心か

ら離す距離を指定できます。また、SelectedItemPosition プロパティを使用すると、選択されている Sunburst グラフセグメント

の位置を指定できます。SelectedItemPosition プロパティは、Position 列挙に含まれる値を受け取ります。このプロパティを

「None」以外の設定すると、項目が選択されたときに円が回転します。

さらに、FlexChartBase クラスで提供されている SelectionStyle プロパティを使用すると、ChartStyle クラスで提供されるプ

ロパティにアクセスして、Sunburst チャートのスタイルを設定できます。

次の図に、データポイントが選択されている Sunburst チャートを示します。

次のコードスニペットでは、上記のプロパティを設定しています。

Visual Basic

FlexChart for WinForms  

246 Copyright © GrapeCity, Inc. All rights reserved.         

Page 248: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 選択モードを設定しますSunburst1.SelectionMode = C1.Chart.ChartSelectionMode.Point

' 選択した項目の位置を設定しますSunburst1.SelectedItemPosition = C1.Chart.Position.Auto

' 選択した項目オフセットを設定しますSunburst1.SelectedItemOffset = 0.2

C#

// 選択モードを設定しますsunburst1.SelectionMode = C1.Chart.ChartSelectionMode.Point;

// 選択した項目の位置を設定しますsunburst1.SelectedItemPosition = C1.Chart.Position.Auto;

// 選択した項目オフセットを設定しますsunburst1.SelectedItemOffset = 0.2;

ドリルダウンドリルダウン

データをドリルダウンして詳細まで掘り下げ、Sunburst チャートのデータ階層の下位レベルにアクセスすると、分析に極めて便

利です。Sunburst チャートには、実行時のデータのドリルダウン/ドリルアップ機能を提供する Drilldown プロパティがありま

す。

エンドユーザーは、Sunburst チャートで目的のスライスをクリックするだけで、特定のデータ項目に注目してドリルダウンする

ことができます。階層を上に戻るには、プロット領域を右クリックするだけです。

次の gif 画像では、ドリルダウンの例として、クリックされた Sunburst グラフセグメントのデータポイントを表示しています。

Sunburst のドリルダウン機能は、Sunburst グラフセグメントの選択が無効の場合、つまり SelectionMode プロパティ

が None に設定されている場合にのみ機能します。選択の詳細については、Sunburst での選択を参照してください。

SunBurst のデータラベルのデータラベル

Data labels provide additional information about the data points. These labels make a chart easier to understand

  FlexChart for WinForms

247 Copyright © GrapeCity, Inc. All rights reserved.         

Page 249: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

because they show details about a slice in the pie.

To understand the working of data labels in Sunburst chart, refer to the following sections.

Adding and Positioning Data LabelsLearn how to add data labels and set their position on the chart.

Formatting Data LabelsLearn how to perform styling and formatting of data labels.

Managing Overlapped Data LabelsLearn how to manage overlapping data labels in Sunburst chart.

データラベルの追加と配置データラベルの追加と配置

With Sunburst chart, you can configure the arrangement and display properties for data labels depending on whatsuits your needs the best. By default, the data labels are not displayed on the chart, however, you can enable them bysetting the Position and Content properties of DataLabel class.

The example code below uses the Position and Content properties to enable data labels and set their position.

// データラベルを設定しますcontentsunburst1.DataLabel.Content = "{name}\n{value}";// データラベルの位置を設定しますsunburst1.DataLabel.Position = C1.Chart.PieLabelPosition.Inside;

C#

データラベルの書式設定データラベルの書式設定

FlexChart for WinForms  

248 Copyright © GrapeCity, Inc. All rights reserved.         

Page 250: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Sunburst provides various options to format data labels according to your requirements. You can use connecting linesto connect the data labels, set and style borders of data labels, and customize the appearance of data labels.

The topic comprises of three sections:

Setting and Styling BordersConnecting DataLabels to Data PointsModifying Appearance

Setting and Styling Borders

To add and style borders to Sunburst data labels, set the Border and BorderStyle properties providedby DataLabel class.

Use the following code snippet to add borders to data labels of Sunburst.

// 境界線を有効にしますsunburst1.DataLabel.Border = true; // 塗りの色を設定しますsunburst1.DataLabel.BorderStyle.FillColor = Color.Beige;

// ストロークの色と幅を設定しますsunburst1.DataLabel.BorderStyle.StrokeColor = Color.Gray;sunburst1.DataLabel.BorderStyle.StrokeWidth = 2;

Connecting DataLabels to Data Points

C#

  FlexChart for WinForms

249 Copyright © GrapeCity, Inc. All rights reserved.         

Page 251: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

In case the data labels are placed away from the data points, you can connect them using connecting lines.

To enable connecting lines in Sunburst chart, you need to use the ConnectingLine property.

Use the following code snippet to set the connecting lines.

// 接続線を有効にしますsunburst1.DataLabel.ConnectingLine = true;

Modifying Appearance

Sunburst includes various styling options, to enhance the clarity of data labels. To modify the appearance of Sunburstchart, you need to use the Style property. It allows you to modify the font family, fill color, use stroke brush for datalabels, set width for stroke brush and more.

In the example code, we have modified the font used in the chart and set the stroke width property. Use the followingcode snippet to modify the appearance of the chart.

// データラベルの外観を変更しますsunburst1.DataLabel.Style.Font = new Font(FontFamily.GenericSansSerif, 8);sunburst1.DataLabel.Style.StrokeWidth = 2;

C#

C#

FlexChart for WinForms  

250 Copyright © GrapeCity, Inc. All rights reserved.         

Page 252: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

重なったデータラベルの管理重なったデータラベルの管理

A common issue pertaining to charts is overlapping of data labels that represent data points. In mostcases, overlapping occurs due to long text in data labels or large numbers of data points.

To manage overlapped data labels in Sunburst chart, you can make use of Overlapping property providedby PieDataLabel class. The Overlapping property accepts the following values from the PieLabelOverlappingenumeration.

Enumeration Description

PieLabelOverlapping.Default Show all labels including the overlapping ones.

PieLabelOverlapping.Hide Hides the overlapping labels, if its content is larger than the corresponding piesegment.

PieLabelOverlapping.Trim Trim overlapping data labels, if its width is larger than the corresponding pie segment.

Use the following code to manage overlapping data labels.

// Overlapping プロパティを設定しますsunburst1.DataLabel.Overlapping = C1.Chart.PieLabelOverlapping.Trim;

The following image shows how Sunburst appears after setting the Overlapping property.

C#

  FlexChart for WinForms

251 Copyright © GrapeCity, Inc. All rights reserved.         

Page 253: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexChart for WinForms  

252 Copyright © GrapeCity, Inc. All rights reserved.         

Page 254: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

FlexRadarFlexRadar はレーダーチャートですが、その外観から、ポーラチャート、スターチャート、クモの巣チャート、スパイダーチャート

などとも呼ばれます。このチャートでは、中心から外側の円まで伸びる軸ごとに個別のカテゴリの値がプロットされます。すべ

ての軸は、等間隔の放射状に配置され、すべての軸で同じスケールが使用されます。各カテゴリの値は個別の軸にプロットさ

れ、すべての値は多角形の形に接続されます。FlexRadar のビジネスアプリケーションとしては、従業員のスキル分析、製品

比較などによく使用されます。X 値が角度値(度単位)を指定する数値なら、FlexRadar コントロールがポーラチャートになるこ

とは重要です。

FlexRadar の詳細については、次の各リンクをクリックしてください。

クイックスタート

主要な機能

チャートタイプ

凡例とタイトル

主な機能主な機能

FlexRadar の主な機能をいくつか示します。

反転反転 FlexRadar:Reversed プロパティを true に設定して、反転した FlexRadar を作成できます。反転した FlexRadar では、プロットの

方向が逆になります。

開始角度開始角度:

FlexRadar クラスで提供される StartAngle プロパティを double 型の値に設定することで、FlexRadar の開始角度を

設定できます。開始角度は、時計回り方向に放射軸の描画を開始する角度(度単位)です。

  FlexChart for WinForms

253 Copyright © GrapeCity, Inc. All rights reserved.         

Page 255: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ヘッダーとフッターヘッダーとフッター:

単純なプロパティを使用して、FlexRadar のヘッダーとフッターを設定およびカスタマイズできます。詳細については、

「凡例とタイトル」を参照してください。

凡例凡例:

FlexRadar の凡例に対して、方向、位置、スタイルの設定など、さまざまなカスタマイズを行うことができます。詳細につ

いては、「凡例とタイトル」を参照してください。

チャートタイプチャートタイプ:

FlexRadar に含まれるさまざまなチャートタイプを使用して、データを視覚化できます。詳細については、「チャートタイ

プ」を参照してください。

クイックスタートクイックスタート

このクイックスタートでは、Visual Studio で単純な FlexRadar アプリケーションを作成して実行する手順を説明します。

FlexRadar の使用をすぐに開始し、アプリケーション実行時にどのように表示されるかを確認するには、次の手順に従います。

1. アプリケーションへのアプリケーションへの FlexRadar の追加の追加

2. データソースへのデータソースへの FlexRadar の連結の連結

3. アプリケーションの実行アプリケーションの実行

次の図に、上記の手順を完了した後に、基本的な FlexRadar がどのように表示されるかを示します。

手順手順 1:アプリケーションへの:アプリケーションへの FlexRadar の追加の追加

1. Visual Studio で Windows フォームアプリケーションフォームアプリケーションを作成します。

2. FlexRadar コントロールをツールボックスからアプリケーションにドラッグアンドドロップします。

以下の .dll ファイルが自動的にアプリケーションに追加されます。

C1.Win.FlexChart.4.dll

FlexChart for WinForms  

254 Copyright © GrapeCity, Inc. All rights reserved.         

Page 256: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

手順手順 2:データソースへの:データソースへの FlexRadar の連結の連結

この手順では、最初に飲料ごとの在庫データを含むデータテーブルを作成します。次に、FlexChart クラスで提供される

DataSource プロパティを使用して、作成したデータテーブルに FlexRadar を連結します。さらに、FlexRadar の X 値を含む

フィールドと Y 値を含むフィールドを、それぞれ BindingX プロパティと Binding プロパティを使用して指定します。

FlexRadar をデータソースに連結するには、Form_Load イベントに次のコードを追加します。

Visual Basic

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

' データテーブルを作成します Dim dt As New DataTable("Product Comparison")

' データテーブルに列を追加します dt.Columns.Add("Beverages", GetType(String)) dt.Columns.Add("Unit Price", GetType(Integer)) dt.Columns.Add("Units In Stock", GetType(Integer)) dt.Columns.Add("Units On Order", GetType(Integer))

' データテーブルに行を追加します dt.Rows.Add("お茶", 18, 39, 40); dt.Rows.Add("コーヒー", 19, 17, 70); dt.Rows.Add("カクテル ", 10, 13, 30); dt.Rows.Add("モクテル", 22, 53, 20); dt.Rows.Add("ソフトドリンク", 21, 120, 70); dt.Rows.Add("ミネラルウォーター", 25, 90, 40);

' データ系列コレクションをクリアします FlexRadar1.Series.Clear()

' データ系列を作成します Dim series1 As New C1.Win.Chart.Series() Dim series2 As New C1.Win.Chart.Series() Dim series3 As New C1.Win.Chart.Series()

' データ系列をデータ系列コレクションに追加します FlexRadar1.Series.Add(series1) FlexRadar1.Series.Add(series2) FlexRadar1.Series.Add(series3)

' チャートのデータソースを指定します FlexRadar1.DataSource = dt

' X軸を結合します FlexRadar1.BindingX = "Beverages"

' Y軸を結合します series1.Binding = "Unit Price" series2.Binding = "Units In Stock" series3.Binding = "Units On Order"

' 系列の名前を指定します series1.Name = "単価"; series2.Name = "在庫数"; series3.Name = "注文中の単位";

End Sub

C#

  FlexChart for WinForms

255 Copyright © GrapeCity, Inc. All rights reserved.         

Page 257: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

private void Form1_Load(object sender, EventArgs e){ // データテーブルを作成します DataTable dt = new DataTable("Product Comparison");

// データテーブルに列を追加します dt.Columns.Add("Beverages", typeof(string)); dt.Columns.Add("Unit Price", typeof(int)); dt.Columns.Add("Units In Stock", typeof(int)); dt.Columns.Add("Units On Order", typeof(int));

// データテーブルに行を追加します dt.Rows.Add("お茶", 18, 39, 40); dt.Rows.Add("コーヒー", 19, 17, 70); dt.Rows.Add("カクテル ", 10, 13, 30); dt.Rows.Add("モクテル", 22, 53, 20); dt.Rows.Add("ソフトドリンク", 21, 120, 70); dt.Rows.Add("ミネラルウォーター", 25, 90, 40);

// データ系列コレクションをクリアします flexRadar1.Series.Clear();

// データ系列を作成します C1.Win.Chart.Series series1 = new C1.Win.Chart.Series(); C1.Win.Chart.Series series2 = new C1.Win.Chart.Series(); C1.Win.Chart.Series series3 = new C1.Win.Chart.Series();

// データ系列をデータ系列コレクションに追加します flexRadar1.Series.Add(series1); flexRadar1.Series.Add(series2); flexRadar1.Series.Add(series3);

// チャートのデータソースを指定します flexRadar1.DataSource = dt;

// X軸を結合します flexRadar1.BindingX = "Beverages";

// Y軸を結合します series1.Binding = "Unit Price"; series2.Binding = "Units In Stock"; series3.Binding = "Units On Order";

// 系列の名前を指定します series1.Name = "単価"; series2.Name = "在庫数"; series3.Name = "注文中の単位";}

手順手順 3:アプリケーションの実行:アプリケーションの実行

[F5]キーを押してアプリケーションを実行し、出力を確認します。

チャートタイプチャートタイプ

FlexRadar では、データ視覚化ニーズに応じてさまざまなチャートタイプを使用することができます。Area から Scatter までさま

ざまなチャートタイプを使用して、FlexRadar のデータ内の領域を色やパターンで塗りつぶして表示できます。FlexRadar で各

種チャートタイプを使用するには、FlexRadar の ChartType プロパティを RadarChartType 列挙の以下の値のいずれかに

設定します。

FlexChart for WinForms  

256 Copyright © GrapeCity, Inc. All rights reserved.         

Page 258: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Area:線の下の領域を色で塗りつぶして表示します。

Line:一定期間のトレンドまたはカテゴリ間のトレンドを表示します。

LineSymbols:各データポイントにシンボルが付いた折れ線グラフを表示します。

Scatter:X 座標と Y 座標を使用して、データに含まれるパターンを表示します。

次の図に、チャートタイプを Area に設定した FlexRadar を示します。

以下のコードスニペットは、「クイックスタート」で作成したサンプルを使用して、コードで ChartType プロパティを設定します。

Visual Basic

' FlexRadarのチャートタイプを設定しますFlexRadar1.ChartType = C1.Chart.RadarChartType.Area

C#

// FlexRadarのチャートタイプを設定しますflexRadar1.ChartType = C1.Chart.RadarChartType.Area;

凡例とタイトル凡例とタイトル

凡例凡例

凡例は、系列のエントリを名前と定義済みの記号で表示します。FlexRadar では、以下のように FlexChartBase クラスの

Legend プロパティを使用して、凡例にアクセスし、さまざまなカスタマイズを実行できます。

方向方向:Legend クラスで提供されている Orientation プロパティを使用して、凡例の方向を、水平、垂直、または自動

に設定できます。このプロパティは、Orientation 列挙に含まれる値のいずれかに設定できます。

位置位置:Position 列挙に含まれる値を受け取る Position プロパティを使用して、凡例の位置を、上、下、左、右、または

  FlexChart for WinForms

257 Copyright © GrapeCity, Inc. All rights reserved.         

Page 259: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

自動配置に設定できます。Position プロパティを None に設定すると、凡例は非表示になります。

スタイル設定スタイル設定:Style プロパティからアクセスできるスタイル設定プロパティを使用して、ストローク色の設定、フォントの

変更など、凡例の外観全体をカスタマイズできます。スタイル設定プロパティ StrokeColor および

Font は、ChartStyle クラスから提供されます。

タイトルおよびタイトルのスタイル設定タイトルおよびタイトルのスタイル設定:凡例タイトルは、文字列を受け取る Title プロパティを使用して指定できます。

タイトルを設定したら、TitleStyle プロパティを使用してタイトルのスタイルを設定できます。このプロパティから、

ChartStyle クラスのカスタマイズプロパティにアクセスできます。

ヘッダーとフッターヘッダーとフッター

ヘッダーとフッターは、チャートの上と下に表示される説明テキストで、チャートデータ全体に関する情報を提供します。

FlexRadar のヘッダーとフッターには、FlexChartBase クラスの Header プロパティと Footer プロパティを使用してそれぞれア

クセスできます。ヘッダーとフッターに対しては、以下のカスタマイズが可能です。

フォントフォント:ヘッダーとフッターのフォントファミリ、フォントサイズ、フォントスタイルを変更できます。それに

は、ChartTitle クラスの Style プロパティからアクセスできる ChartStyle クラスの Font プロパティを使用します。

ストローク色ストローク色:ChartStyle クラスの StrokeColor プロパティを使用して、タイトルのストローク色を選択します。

ストロークストローク:Stroke プロパティを使用してタイトルのストロークを設定し、見栄えをさらによくすることができます。

次の図に、凡例とタイトルを設定した FlexRadar を示します。

次のコードスニペットは、さまざまなプロパティを設定する方法を示します。

Visual Basic

' 凡例の向きを設定します FlexRadar1.Legend.Orientation = C1.Chart.Orientation.Vertical

FlexChart for WinForms  

258 Copyright © GrapeCity, Inc. All rights reserved.         

Page 260: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

' 凡例の位置を設定します FlexRadar1.Legend.Position = C1.Chart.Position.Right

' 凡例のストローク色を設定します FlexRadar1.Legend.Style.StrokeColor = Color.DarkCyan

' 凡例のフォントを設定します FlexRadar1.Legend.Style.Font = New Font("Arial", 9, FontStyle.Regular)

' 凡例のタイトルを設定します FlexRadar1.Legend.Title = "パラメータ"

' 凡例のタイトルのストローク色を設定します FlexRadar1.Legend.TitleStyle.StrokeColor = Color.Brown

' 凡例のタイトルフォントを設定します FlexRadar1.Legend.TitleStyle.Font = New Font("Arial", 10, FontStyle.Bold)

' ヘッダーを設定します FlexRadar1.Header.Content = "製品情報"

' ヘッダーのフォントを設定します FlexRadar1.Header.Style.Font = New Font("Arial", 11, FontStyle.Bold)

' ヘッダーのストロークを設定します FlexRadar1.Header.Style.Stroke = Brushes.Blue

C#

// 凡例の向きを設定しますflexRadar1.Legend.Orientation = C1.Chart.Orientation.Vertical;

// 凡例の位置を設定しますflexRadar1.Legend.Position = C1.Chart.Position.Right;

// 凡例のストローク色を設定しますflexRadar1.Legend.Style.StrokeColor = Color.DarkCyan;

// 凡例のフォントを設定しますflexRadar1.Legend.Style.Font = new Font("Arial", 9, FontStyle.Regular);

// 凡例のタイトルを設定しますflexRadar1.Legend.Title = "パラメータ";

// 凡例のタイトルのストローク色を設定しますflexRadar1.Legend.TitleStyle.StrokeColor = Color.Brown;

// 凡例のタイトルフォントを設定しますflexRadar1.Legend.TitleStyle.Font = new Font("Arial", 10, FontStyle.Bold);

// ヘッダーを設定しますflexRadar1.Header.Content = "製品情報";

// ヘッダーのフォントを設定しますflexRadar1.Header.Style.Font = new Font("Arial", 11, FontStyle.Bold);

  FlexChart for WinForms

259 Copyright © GrapeCity, Inc. All rights reserved.         

Page 261: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

// ヘッダーのストロークを設定しますflexRadar1.Header.Style.Stroke = Brushes.Blue;

FlexChart for WinForms  

260 Copyright © GrapeCity, Inc. All rights reserved.         

Page 262: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

TreeMap階層的な情報やデータは、家系図、プログラミング、組織図、ディレクトリなど、さまざまな階層や組織で役立ちます。このよう

なデータスポット情報を視覚化することは、特にデータが大きな場合は難しいタスクです。Treemap チャートを使用すると、階

層化データを限られたスペースで入れ子の四角形として視覚化できます。大きなデータに含まれるパターンを簡単に把握した

り、比率を比較するために便利です。

TreeMap チャートコントロールは、データの連結による階層の表示をサポートし、データをさまざまなレベルにドリルダウンし

て詳細に分析することができます。このコントロールは、構成している四角形を横長、縦長、正方形のレイアウトでデータを表

示するようにカスタマイズできます。

TreeMap と Sunburst チャートはどちらも階層化データの表示と視覚化に理想的ですが、ツリーマップは大量のデータを限ら

れた領域に表示できるため、スペースに制約がある場合に便利です。

次のトピックでは、TreeMap コントロールを理解し、高度な機能を説明します。

主な機能主な機能

TreeMap コントロールには、限られた領域に階層化データを表示し、ツリーノード(入れ子の四角形)のサイズを比較すること

でデータを分析するためのさまざまな機能があります。次のものがあります。

階層的なデータ表現階層的なデータ表現

  FlexChart for WinForms

261 Copyright © GrapeCity, Inc. All rights reserved.         

Page 263: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

TreeMap コントロールは、階層内のデータ値を視覚化し、比率を比較するために役立ちます。

レイアウトレイアウト

TreeMap は、複数の表示配置をサポートします。ツリーブランチを正方形、横長長方形、縦長長方形などで示すことが

できます。

階層レベルのカスタマイズ階層レベルのカスタマイズ

TreeMap コントロールでは、データの深さ深さを変化させて、データを視覚化した上でドリルダウン(または逆ドリルダウン)

することで、分析と比較を行うことができます。

外観のカスタマイズ外観のカスタマイズ

TreeMap では、コントロールをスタイル設定し、好みに応じて外観を変化させることができます。ツリーマップチャートで

カテゴリをわかりやすく表示するために、さまざまなカラーパレットパレットを使用できます。

データ連結データ連結

TreeMap は、さまざまなサイズのデータを含むデータソースに連結でき、このようなデータを限られた四角形の領域に

表示できます。

選択選択

TreeMap では、ツリーノードやノードのグループを選択して、階層化データの特定のデータ項目に注目することができ

ます。

スペース活用の最適化スペース活用の最適化

TreeMap は、大量のデータをコンパクトに表示して視覚化する場合に理想的です。ツリーマップチャートを構成する入

れ子の四角形やグループは、表示領域に合わせてサイズが調整されます。

クイックスタートクイックスタート

このクイックスタートでは、TreeMapチャートをWinFormsアプリケーションに追加し、階層データを表示する手順を説明します。

このトピックでは、特定の年にXYZという市で書籍、音楽、ビデオ、ガジェット(コンピュータやタブレットなど)の販売を比較する

とします。

TreeMapコントロールに階層データを表示する手順は次のようになります。

手順手順 1:プロジェクトへの:プロジェクトへの TreeMap の追加の追加

手順手順 2:階層データソースの作成:階層データソースの作成

手順手順 3:データソースへの:データソースへの TreeMap の連結の連結

手順手順 4:プロジェクトの実行:プロジェクトの実行

次の図は、特定の年にXYZ市でさまざまな書籍、音楽、ビデオ、ガジェット(コンピュータやタブレットなど)の販売を展示して比

較しています。

FlexChart for WinForms  

262 Copyright © GrapeCity, Inc. All rights reserved.         

Page 264: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

先頭に戻る先頭に戻る

チャートにプロットされるデータポイントを含むオブジェクトのコレクションを指すように、TreeMapクラスのDataSourceプロパ

ティを設定する必要があります。データ項目を生成してTreeMapチャートに表示するには、BindingNameプロパティ

とBindingプロパティを設定します。BindingName プロパティを、グラフの四角形として表示するデータ項目の名前を指定す

る文字列値に設定します。そして、Binding プロパティを、チャート値(ツリーノードのサイズを計算するのに役立つ数値)を含

むチャートアイテムのプロパティの名前を指定する文字列値に設定します。

階層項目のレベルをドリルダウンに指定してチャートに表示するには、MaxDepthプロパティを設定します。また、TreeMapの表示レイアウトはChartTypeプロパティで指定します。カラーパレットを使用してコントロールをスタイル設定し、その外観を変

更することもできます。

手順手順 1:プロジェクトへの:プロジェクトへのTreeMap の追加の追加

1. Visual Studio でWindows フォームアプリケーションフォームアプリケーション を作成します。

2. TreeMap コントロールを ツールボックスから Form にドラッグアンドドロップします。

次の dll が自動的にアプリケーションに追加されます。

C1.Win.FlexChart.4.dll

先頭に戻る先頭に戻る

手順手順 2:階層データソースの作成:階層データソースの作成

コードビューに切り替えて、書物、音楽、電子機器、ビデオ、コンピュータおよびタブレットの販売データを生成するために次の

コードを追加します。

Visual Basic

Private rnd As New Random()

  FlexChart for WinForms

263 Copyright © GrapeCity, Inc. All rights reserved.         

Page 265: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

Private Function rand() As Integer Return rnd.[Next](10, 100)End FunctionPrivate Function GetData() As Object Dim data = New Object() {New With { .type = "音楽", .items = New () {New With { .type = "カントリー", .items = New () {New With { .type = "クラシックカントリー", .sales = rand() }} }, New With { .type = "ロック", .items = New () {New With { .type = "ファンクロック", .sales = rand() }} }, New With { .type = "クラシック", .items = New () {New With { .type = "交響曲", .sales = rand() }} }} }, New With { .type = "書物", .items = New () {New With { .type = "美術と写真", .items = New () {New With { .type = "建築", .sales = rand() }} }, New With { .type = "児童書", .items = New () {New With { .type = "読者を始めよう", .sales = rand() }} }, New With { .type = "歴史", .items = New () {New With { .type = "古代", .sales = rand() }} }, New With { .type = "推理", .items = New () {New With { .type = "スリラー", .sales = rand() }} }, New With { .type = "サイエンスフィクション", .items = New () {New With { .type = "ファンタジー", .sales = rand() }} }} }, New With { .type = "電子機器", .items = New () {New With { .type = "ウェアラブルデバイス", .items = New () {New With {

FlexChart for WinForms  

264 Copyright © GrapeCity, Inc. All rights reserved.         

Page 266: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

.type = "アクティビティログ", .sales = rand() }} }, New With { .type = "携帯電話", .items = New () {New With { .type = "アクセサリ", .sales = rand() }} }, New With { .type = "ヘッドフォン", .items = New () {New With { .type = "イヤホン", .sales = rand() }} }, New With { .type = "カメラ", .items = New () {New With { .type = "デジタルカメラ", .sales = rand() }} }} }, New With { .type = "ビデオ", .items = New () {New With { .type = "映画", .items = New () {New With { .type = "子ども", .sales = rand() }} }, New With { .type = "テレビ", .items = New () {New With { .type = "コメディー", .sales = rand() }} }} }} Return dataEnd Function

C#

Random rnd = new Random(); int rand() { return rnd.Next(10, 100); } object GetData() { var data = new object[] { new { type = "音楽", items = new [] { new { type = "カントリー", items= new [] { new { type= "クラシックカントリー", sales = rand() }} }, new { type= "ロック", items= new [] { new { type= "ファンクロック", sales= rand()

  FlexChart for WinForms

265 Copyright © GrapeCity, Inc. All rights reserved.         

Page 267: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

} } }, new { type= "クラシック", items= new [] { new { type= "交響曲", sales= rand() } } }}}, new { type= "書物", items= new [] { new { type= "美術と写真", items= new [] { new { type= "建築", sales= rand() }} }, new { type= "児童書", items= new [] { new { type= "読者を始めよう", sales= rand() } } }, new { type= "歴史", items= new [] { new { type= "古代", sales= rand() } } }, new { type= "推理", items= new [] { new { type= "スリラー", sales= rand() } } }, new { type= "サイエンスフィクション", items= new [] { new { type= "ファンタジー", sales= rand() }} } }}, new { type= "電子機器", items= new [] { new { type= "ウェアラブルデバイス", items= new [] { new { type= "アクティビティログ", sales= rand() }} }, new { type= "携帯電話", items= new [] { new { type= "アクセサリ", sales= rand() } } }, new { type= "ヘッドフォン", items= new [] { new { type= "イヤホン", sales= rand() } } }, new { type= "カメラ",

FlexChart for WinForms  

266 Copyright © GrapeCity, Inc. All rights reserved.         

Page 268: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

items= new [] { new { type= "デジタルカメラ", sales= rand() } } } }}, new { type= "ビデオ", items= new [] { new { type= "映画", items= new [] { new { type= "子ども", sales= rand() } } }, new { type= "テレビ", items= new [] { new { type= "コメディー", sales= rand() } } } }} }; return data; }

先頭に戻る先頭に戻る

手順手順 3:データソースへの:データソースへの TreeMap の連結の連結

1. ツリーマップチャートを表示するための適切なプロパティを設定するには、SetupChart()という名前のメソッドを定義し、

次のコードを追加します。

Visual BasicTreeMap1.BeginUpdate()TreeMap1.DataSource = GetData()TreeMap1.Binding = "sales"TreeMap1.BindingName = "type"TreeMap1.ChildItemsPath = "items"TreeMap1.MaxDepth = 2TreeMap1.EndUpdate()

C#treeMap1.BeginUpdate();//DataSourceプロパティはランダムデータを取得します //型system.Objectの GetData()メソッドで生成されます treeMap1.DataSource = GetData(); treeMap1.Binding = "sales";treeMap1.BindingName = "type";treeMap1.ChildItemsPath = "items";treeMap1.MaxDepth = 2;treeMap1.EndUpdate();

2. Form クラスのコンストラクタで、InitializeComponent() メソッドの下で SetupChart() メソッドを呼び出します。

先頭に戻る先頭に戻る

手順手順 4:プロジェクトの実行:プロジェクトの実行

1. [ビルド][ビルド]→[ソリューションのビルド][ソリューションのビルド]をクリックして、プロジェクトをビルドします。

2. [[F5]]を押してプロジェクトを実行します。

先頭に戻る先頭に戻る

要素要素

  FlexChart for WinForms

267 Copyright © GrapeCity, Inc. All rights reserved.         

Page 269: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

ツリーマップチャートは、個別のデータ項目を表す長方形で構成され、データの階層的な性質を表すカテゴリにグループ化さ

れます。グループを構成する個別のデータ項目は、リーフノードと呼ばれます。ノードのサイズは、表すデータに比例します

次の図に、TreeMap コントロールのメイン要素を示します。

レイアウトレイアウト

TreeMap では、データ項目とグループを四角形で表し、さまざまな配置で表示できます。ツリーマップの四角形は、正方形、横

長、縦長のレイアウトに配置できます。ツリーマップで目的のレイアウトを設定するには、TreeMap クラスの ChartType プロ

パティを使用します。このプロパティは、TreeMapType 列挙を受け取ります。TreeMap チャートコントロールのデフォルトのレ

イアウトは、正方形です。

正方形正方形

正方形のレイアウトは、ツリーマップの四角形(データ項目とグループ)をほぼ正方形として配置します。このレイアウトでは、

正方形の配置によって表現の正確さが向上するため、比較やパターンの把握が容易になります。このレイアウトは、大きな

データセットでたいへん便利です。

FlexChart for WinForms  

268 Copyright © GrapeCity, Inc. All rights reserved.         

Page 270: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

treeMap1.ChartType = C1.Chart.TreeMapType.Squarified

treeMap1.ChartType = C1.Chart.TreeMapType.Squarified;

水平方向水平方向

水平方向のレイアウトは、ツリーマップの四角形を積み重ねて行の形式にします。四角形の幅が高さより大きくなります。

Visual Basic

C#

  FlexChart for WinForms

269 Copyright © GrapeCity, Inc. All rights reserved.         

Page 271: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

treeMap1.ChartType = C1.Chart.TreeMapType.Horizontal

treeMap1.ChartType = C1.Chart.TreeMapType.Horizontal;

垂直方向垂直方向

垂直方向のレイアウトでは、ツリーマップの四角形を隣接させて列の形式にします。四角形の高さが幅より大きくなります。

Visual Basic

C#

FlexChart for WinForms  

270 Copyright © GrapeCity, Inc. All rights reserved.         

Page 272: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

treeMap1.ChartType = C1.Chart.TreeMapType.Vertical

treeMap1.ChartType = C1.Chart.TreeMapType.Vertical;

水平方向と垂直方向のツリーマップは、情報の順序を維持して表示する場合に役立ちます。

Visual Basic

C#

データ連結データ連結

TreeMap チャートコントロールは、階層化データに連結して、ツリー型のデータの要素を入れ子の四角形として表します。データソースに連結

してデータ項目を四角形として表示すると、構成要素となる四角形のサイズと色に基づいてデータ項目を分析および比較できます。

TreeMap クラスは、DataSource プロパティを公開しています。このプロパティは、データを含むオブジェクトのコレクションを受け取り、ツリー

マップチャートを生成します。Binding および BindingName プロパティを使用して、データ項目やそれぞれのカテゴリまたはグループに対

応する四角形ノードを生成します。Binding プロパティは、四角形ノードのサイズ計算に使用される数値データ値を含むデータ項目のプロパ

ティの名前を表す文字列値を受け取ります。一方、BindingName は、データ項目の名前を表す文字列値を受け取ります。ChildItemPathプロパティは、データ内の子項目をコントロールに伝えることで、指定されたデータコレクションの階層化構造を維持するために使用されま

す。

ツリーマップチャートでデータがどのように生成されるかを詳細に説明するために、複数のブランドの小売店の年次売上(販売数)を比較しま

す。ツリーマップチャートを使用すると、分析をさらに四半期、月にドリルダウンできます。年次の売上が最上位レベルの四角形で表され、こ

  FlexChart for WinForms

271 Copyright © GrapeCity, Inc. All rights reserved.         

Page 273: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

れらの年の四半期の売上が次のレベルを表し、次のレベルである月の売上がツリーマップのリーフノードを構成します。

次の図に、小売店の売上(販売数)を TreeMap チャートコントロールで示します。画像に階層化データが最大 3 つのレベル、つまり各年の四

半期内の月のレベルまで表示されています。

先頭に戻る先頭に戻る

この例では、DataSource.cs クラスで生成されるデータがツリーマップチャートのソースになります。DataSource プロパティは、

DataSource.cs クラスで生成される階層化データのコレクションを受け取ります。

1. 階層化データソースを作成する階層化データソースを作成する

1. コードビューで、次のコードで示すように、DataService.cs クラスを作成して階層化データを生成します。

Visual BasicPublic Class DataService Private rnd As New Random() Shared _default As DataService

Public Shared ReadOnly Property Instance() As DataService Get If _default Is Nothing Then _default = New DataService() End If

Return _default End Get End Property

Public Shared Function CreateHierarchicalData() As List(Of DataItem) Dim rnd As Random = Instance.rnd

Dim years As New List(Of String)() Dim times As New List(Of List(Of String))() From { New List(Of String)() From { "1月", "2月", "3月" },

FlexChart for WinForms  

272 Copyright © GrapeCity, Inc. All rights reserved.         

Page 274: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

New List(Of String)() From { "4月", "5月", "6月" }, New List(Of String)() From { "7月", "8月", "9月" }, New List(Of String)() From { "10月", "11月", "12月" } }

Dim items As New List(Of DataItem)() Dim yearLen = Math.Max(CInt(Math.Round(Math.Abs(5 - Instance.rnd.NextDouble () * 10))), 3) Dim currentYear As Integer = DateTime.Now.Year For i As Integer = yearLen To 1 Step -1 years.Add((currentYear - i).ToString()) Next Dim quarterAdded = False

years.ForEach(Function(y) Dim i = years.IndexOf(y) Dim addQuarter = Instance.rnd.NextDouble() > 0.5 If Not quarterAdded AndAlso i = years.Count - 1 Then addQuarter = True End If Dim year = New DataItem() With { .Year = y } If addQuarter Then quarterAdded = True times.ForEach(Function(q) Dim addMonth = Instance.rnd.NextDouble() > 0.5 Dim idx As Integer = times.IndexOf(q) Dim quar As String quar = "Q" + (idx + 1).ToString Dim quarters = New DataItem() With { .Year = y, .Quarter = quar } If addMonth Then q.ForEach(Function(m) quarters.Items.Add(New DataItem() With { .Year = y, .Quarter = quar, .Month = m, .Value = rnd.[Next](20, 30) }) End Function) Else quarters.Value = rnd.[Next](80, 100) End If year.Items.Add(quarters)

End Function) Else year.Value = rnd.[Next](80, 100) End If items.Add(year)

End Function)

Return items End Function

  FlexChart for WinForms

273 Copyright © GrapeCity, Inc. All rights reserved.         

Page 275: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

End ClassC#

public class DataService{ Random rnd = new Random(); static DataService _default;

public static DataService Instance { get { if (_default == null) { _default = new DataService(); }

return _default; } }

public static List<DataItem> CreateHierarchicalData() { Random rnd = Instance.rnd;

List<string> years = new List<string>(); List<List<string>> times = new List<List<string>>() { new List<string>() { "1月", "2月", "3月"}, new List<string>() { "4月", "5月", "6月"}, new List<string>() { "7月", "8月", "9月"}, new List<string>() { "10月", "11月", "12月" } };

List<DataItem> items = new List<DataItem>(); var yearLen = Math.Max((int)Math.Round(Math.Abs(5 - Instance .rnd.NextDouble() * 10)), 3); int currentYear = DateTime.Now.Year; for (int i = yearLen; i > 0; i--) { years.Add((currentYear - i).ToString()); } var quarterAdded = false;

years.ForEach(y => { var i = years.IndexOf(y+"年"); var addQuarter = Instance.rnd.NextDouble() > 0.5; if (!quarterAdded && i == years.Count - 1) { addQuarter = true; } var year = new DataItem() { Year = y }; if (addQuarter) { quarterAdded = true; times.ForEach(q => { var addMonth = Instance.rnd.NextDouble() > 0.5; int idx = times.IndexOf(q); var quar = "Q" + (idx + 1); var quarters = new DataItem() { Year = y, Quarter = quar }; if (addMonth) { q.ForEach(m => { quarters.Items.Add(new DataItem() { Year = y, Quarter = quar, Month = m, Value = rnd.Next(20, 30)

FlexChart for WinForms  

274 Copyright © GrapeCity, Inc. All rights reserved.         

Page 276: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

}); }); } else { quarters.Value = rnd.Next(80, 100); } year.Items.Add(quarters); }); } else { year.Value = rnd.Next(80, 100); } items.Add(year); });

return items; }

}2. DataItem クラスを作成して、データ項目とカテゴリを表すオブジェクトのリストを定義します。

Visual BasicPublic Class DataItem Private _items As List(Of DataItem)

Public Property Year() As String Get Return m_Year End Get Set m_Year = Value End Set End Property Private m_Year As String Public Property Quarter() As String Get Return m_Quarter End Get Set m_Quarter = Value End Set End Property Private m_Quarter As String Public Property Month() As String Get Return m_Month End Get Set m_Month = Value End Set End Property Private m_Month As String Public Property Value() As Double Get Return m_Value End Get Set m_Value = Value End Set End Property Private m_Value As Double Public ReadOnly Property Items() As List(Of DataItem) Get If _items Is Nothing Then _items = New List(Of DataItem)() End If

Return _items End Get

  FlexChart for WinForms

275 Copyright © GrapeCity, Inc. All rights reserved.         

Page 277: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

End PropertyEnd Class

C#public class DataItem{ List<DataItem> _items;

public string Year { get; set; } public string Quarter { get; set; } public string Month { get; set; } public double Value { get; set; } public List<DataItem> Items { get { if (_items == null) { _items = new List<DataItem>(); }

return _items; } }}

先頭に戻る先頭に戻る

2. データソースへのデータソースへの TreeMap の連結の連結

1. 次のコードスニペットでは、SetupChart() というメソッドを定義して、ツリーマップチャートを表示するための適切なプロパティを

設定します。

Visual BasicPrivate Sub SetupChart() TreeMap1.BeginUpdate() TreeMap1.DataSource = DataService.CreateHierarchicalData() TreeMap1.Binding = "Value" TreeMap1.BindingName = "Year,Quarter,Month" TreeMap1.ChildItemsPath = "Items" TreeMap1.MaxDepth = 3 TreeMap1.ToolTip.Content = "{name}: {value} units" TreeMap1.ToolTip.IsBalloon = True TreeMap1.EndUpdate()End Sub

C#void SetupChart(){ treeMap1.BeginUpdate(); treeMap1.DataSource = DataService.CreateHierarchicalData(); treeMap1.Binding = "Value"; treeMap1.BindingName = "Year,Quarter,Month"; treeMap1.ChildItemsPath = "Items"; treeMap1.MaxDepth = 3; treeMap1.ToolTip.Content = "{name}: {value} units"; treeMap1.ToolTip.IsBalloon = true; treeMap1.EndUpdate();}

2. Form クラスのコンストラクタで、InitializeComponent() メソッドの下で SetupChart() メソッドを呼び出します。

先頭に戻る先頭に戻る

3. プロジェクトのビルドおよび実行プロジェクトのビルドおよび実行

1. [ビルド][ビルド]→[ソリューションのビルド][ソリューションのビルド]をクリックして、プロジェクトをビルドします。

2. [[F5]]を押してプロジェクトを実行します。

先頭に戻る先頭に戻る

選択選択

FlexChart for WinForms  

276 Copyright © GrapeCity, Inc. All rights reserved.         

Page 278: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

TreeMap チャートでは、データ項目とグループを選択できます。クリックするだけで、ノードを選択してフォーカスを設定できま

す。FlexChartBase クラスで提供されている SelectionMode プロパティを ChartSelectionMode 列挙に含まれる次の値の

いずれかに設定する必要があります。

None(デフォルト)(デフォルト):選択は無効です。

Point:ポイントが選択されます。

次の図に、データポイントと共に階層内の子ノードをデフォルトで選択したところを示します。

次のコードスニペットでは、ツリーマップチャートの SelectionMode プロパティの設定方法を示します。

Visual Basic

TreeMap1.SelectionMode = C1.Chart.ChartSelectionMode.Point

C#

treeMap1.SelectionMode = C1.Chart.ChartSelectionMode.Point;

カスタマイズされたカスタマイズされた TreeMap の選択の選択

TreeMap の選択をカスタマイズするために、SelectionStyle プロパティを使用して、次の画像のように選択項目をスタイル設

定できます。

  FlexChart for WinForms

277 Copyright © GrapeCity, Inc. All rights reserved.         

Page 279: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

次のコードスニペットは、SelectionStyle プロパティを活用して、選択されている TreeMap ノードの塗りつぶし色を変更しま

す。

Visual Basic

TreeMap1.SelectionStyle.Fill = Brushes.Wheat

C#

treeMap1.SelectionStyle.Fill = Brushes.Wheat;

さらに、SelectionChanged イベントを処理することで、TreeMap の選択の動作をカスタマイズできます。ま

た、SelectedIndex と SelectedItem のプロパティを活用して、アプリケーションで取得した情報を再利用できます。

ドリルダウンドリルダウン

TreeMap では、データのデータ項目をドリルダウンして詳細な分析を行うことができます。エンドユーザーは、目的のノードを

クリックするだけで、データ階層内の下位レベルにアクセスできます。階層を上に戻るには、プロット領域を右クリックするだけ

です。

TreeMap のドリルダウン機能は、MaxDepth プロパティを 0 より大きな値に設定した場合にのみ有効になります。このプロパ

ティは、TreeMap チャートの階層化データのレベルを定義します。

次の gif 画像では、ドリルダウンの例として、クリックされた TreeMap ノードのデータポイントを表示しています。

FlexChart for WinForms  

278 Copyright © GrapeCity, Inc. All rights reserved.         

Page 280: FlexChart for WinForms - GrapeCity...FlexChart FlexChart は Windows 用の強力なデータ視覚化コントロールです。 Windows フォームアプリケーションに、機能豊富で見栄

TreeMap のドリルダウン機能は、TreeMap ノードの選択が無効の場合、つまり SelectionMode プロパティが Noneに設定されている場合にのみ機能します。選択の詳細については、TreeMap での選択を参照してください。

  FlexChart for WinForms

279 Copyright © GrapeCity, Inc. All rights reserved.