0から独学C#08 -- カーブチャートコントロールの描画
チャート コントロールの使用
この記事では、ツールボックスのチャート コントロールを使用して複数の曲線を描く方法を紹介します。レンダリングは次のとおりです。
1.InitializeChart
チャート コントロールをフォームに追加し、プロパティ内の ChartAreas、Legends、および Series コレクションをクリアします。これらは次のコードによって動的に実装されます。フォーム コンストラクターで、InitializeChart メソッドと DrawSeries メソッドを実装します。
InitializeChart コードは次のとおりです。
public partial class MainFormBERT : Form { public MainFormBERT() { InitializeComponent(); InitializeChart(); DrawSeries(); } public void InitializeChart() { #region 设置图表的属性 //图表的背景色 chart1.BackColor = Color.FromArgb(211, 223, 240); //图表背景色的渐变方式 chart1.BackGradientStyle = GradientStyle.None; //图表的边框颜色、 chart1.BorderlineColor = Color.FromArgb(26, 59, 105); //图表的边框线条样式 chart1.BorderlineDashStyle = ChartDashStyle.Solid; //图表边框线条的宽度 chart1.BorderlineWidth = 2; //图表边框的皮肤 chart1.BorderSkin.SkinStyle = BorderSkinStyle.None; #endregion #region 设置图表的Title Title title = new Title(); //标题内容 title.Text = "BER"; //标题的字体 title.Font = new System.Drawing.Font("Microsoft Sans Serif", 12, FontStyle.Regular); //标题字体颜色 //title.ForeColor = Color.FromArgb(26, 59, 105); //标题阴影颜色 //title.ShadowColor = Color.FromArgb(32, 0, 0, 0); //标题阴影偏移量 //title.ShadowOffset = 3; chart1.Titles.Add(title); #endregion #region 设置图表区属性 //图表区的名字 ChartArea chartArea = new ChartArea("Default"); //背景色 chartArea.BackColor = Color.White;// Color.FromArgb(64, 165, 191, 228); //背景渐变方式 chartArea.BackGradientStyle = GradientStyle.None; //渐变和阴影的辅助背景色 chartArea.BackSecondaryColor = Color.White; //边框颜色 chartArea.BorderColor = Color.Blue; //边框线条宽度 chartArea.BorderWidth = 2; //边框线条样式 chartArea.BorderDashStyle = ChartDashStyle.Solid; //阴影颜色 //chartArea.ShadowColor = Color.Transparent; //设置X轴和Y轴线条的颜色和宽度 chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisX.LineWidth = 1; chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisY.LineWidth = 1; //设置X轴和Y轴的标题 //chartArea.AxisX.Title = "time"; //chartArea.AxisY.Title = "count"; //chartArea.AxisX.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 10, FontStyle.Regular); //chartArea.AxisY.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 10, FontStyle.Regular); //设置图表区网格横纵线条的颜色和宽度 chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisX.MajorGrid.LineWidth = 1; chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64); chartArea.AxisY.MajorGrid.LineWidth = 1; chart1.ChartAreas.Add(chartArea); #endregion #region 图例及图例的位置 Legend legend = new Legend(); legend.Alignment = StringAlignment.Center; legend.Docking = Docking.Bottom; legend.BackColor = Color.Transparent; this.chart1.Legends.Add(legend); #endregion } }
2. 曲線のスタイルを設定します
タイプ、色、幅などを設定します
private Series SetSeriesStyle(int i) { Series series = new Series(string.Format("Ch{0}", i + 1)); //Series的类型 series.ChartType = SeriesChartType.Line; //Series的边框颜色 series.BorderColor = Color.FromArgb(180, 26, 59, 105); //线条宽度 series.BorderWidth = 3; //线条阴影颜色 //series.ShadowColor = Color.Black; //阴影宽度 //series.ShadowOffset = 2; //是否显示数据说明 series.IsVisibleInLegend = true; //线条上数据点上是否有数据显示 series.IsValueShownAsLabel = false; //线条上的数据点标志类型 series.MarkerStyle = MarkerStyle.None; //线条数据点的大小 //series.MarkerSize = 8; //线条颜色 switch (i) { case 0: series.Color = Color.FromArgb(220, 65, 140, 240); break; case 1: series.Color = Color.FromArgb(220, 224, 64, 10); break; case 2: series.Color = Color.FromArgb(220, 120, 150, 20); break; case 3: series.Color = Color.FromArgb(220, 12, 128, 232); break; } return series; }
3. 曲線を描画します
データテーブルからデータを取得し、4 つの曲線を描画します。
//绘制曲线 private void DrawSeries() { dt = new TestDataTable(); dt.CreateTable(); for (int i = 0; i < 4; i++) { Series series = this.SetSeriesStyle(i); DataRow[] foundRows; string expression = "Ch = " + i; foundRows = dt.Select(expression); foreach (DataRow row in foundRows) { series.Points.AddXY(row[0], row[2]); } this.chart1.Series.Add(series); } }
4. 曲線を表示または非表示にする
チェックボックスの状態に応じて、これら 4 つの曲線を表示または非表示にします。
//显示隐藏曲线 private void DisOrPlaySeries(int i) { if (checkBox[i].Checked) { DataRow[] foundRows; string expression = "Ch = " + i; foundRows = dt.Select(expression); foreach (DataRow row in foundRows) { this.chart1.Series[i].Points.AddXY(row[0], row[2]); } } else { this.chart1.Series[i].Points.Clear(); } }
上記は、ゼロから独習する C#08 - カーブ チャート コントロールの描画の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

XML形式を変更する方法はいくつかあります。Atepadなどのテキストエディターを使用して手動で編集する。 XmlBeautifierなどのオンラインまたはデスクトップXMLフォーマットツールを使用して自動的にフォーマットします。 XSLTなどのXML変換ツールを使用して変換ルールを定義します。または、Pythonなどのプログラミング言語を使用して解析および操作します。元のファイルを変更してバックアップするときは注意してください。
