| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「C Sharp グラフ」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==C# グラフ==
+
==[[C# グラフ]]==
 
[[C Sharp]] | [[Visual Studio]] |  
 
[[C Sharp]] | [[Visual Studio]] |  
{{category グラフ}}
+
[[Category:グラフ]]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja Microsoft Chart Controls for Microsoft .NET Framework 3.5]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja Microsoft Chart Controls for Microsoft .NET Framework 3.5]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008]
13行目: 13行目:
 
====チャートコントロールのアセンブリ====
 
====チャートコントロールのアセンブリ====
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja Microsoft Chart Controls for Microsoft .NET Framework 3.5]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja Microsoft Chart Controls for Microsoft .NET Framework 3.5]
*ASP.NET および Windows Forms チャートコントロール を含む新しいアセンブリをインストールします
+
*[[ASP.NET]] および Windows Forms チャートコントロール を含む新しいアセンブリをインストールします
====Visual Studio アドオン====
+
====[[Visual Studio]] アドオン====
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008]
 
*[http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008]
*Microsoft Chart Controls for .NET Framework 3.5 が事前に導入されていること
+
*Microsoft Chart Controls for [[.NET]] Framework 3.5 が事前に導入されていること
*Visual Studio のASP.NET、Windows Forms チャートコントロールをツールボックスおよびインテリセンスに統合する
+
*[[Visual Studio]] のASP.NET、Windows Forms チャートコントロールをツールボックスおよびインテリセンスに統合する
 
[[File:0261_chartctrl01.jpg]]
 
[[File:0261_chartctrl01.jpg]]
  
43行目: 43行目:
 
  using System.Linq;
 
  using System.Linq;
 
  using System.Text;
 
  using System.Text;
  using System.Windows.Forms;
+
  using System.[[Windows]].Forms;
  using System.Windows.Forms.DataVisualization.Charting;
+
  using System.[[Windows]].Forms.DataVisualization.Charting;
 
   
 
   
 
  namespace MsChartCtrlTest
 
  namespace MsChartCtrlTest
56行目: 56行目:
 
   
 
   
 
             // 初期表示ダミーデータをデータグリッドに設定
 
             // 初期表示ダミーデータをデータグリッドに設定
             Random rnd = new Random();
+
             [[R]]andom rnd = new [[R]]andom();
 
             for (int i = 0; i < 10; i++)
 
             for (int i = 0; i < 10; i++)
 
             {
 
             {
62行目: 62行目:
 
                     "axis_label" + i, (rnd.NextDouble() * 100).ToString()
 
                     "axis_label" + i, (rnd.NextDouble() * 100).ToString()
 
                 };
 
                 };
                 dataGridView1.Rows.Add(row);     
+
                 dataGridView1.[[R]]ows.Add(row);     
 
             }
 
             }
 
   
 
   
81行目: 81行目:
 
   
 
   
 
             Series series = new Series();
 
             Series series = new Series();
             for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
+
             for (int i = 0; i < dataGridView1.[[R]]ows.Count-1; i++)
 
             {
 
             {
 
                 DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
 
                 DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
87行目: 87行目:
 
             }
 
             }
 
             this.chart1.Series.Add(series);
 
             this.chart1.Series.Add(series);
             this.chart1.ResetAutoValues();  
+
             this.chart1.[[R]]esetAutoValues();  
 
         }
 
         }
 
     }
 
     }
102行目: 102行目:
 
  using System.Linq;
 
  using System.Linq;
 
  using System.Text;
 
  using System.Text;
  using System.Windows.Forms;
+
  using System.[[Windows]].Forms;
  using System.Windows.Forms.DataVisualization.Charting;
+
  using System.[[Windows]].Forms.DataVisualization.Charting;
 
   
 
   
 
  namespace MsChartCtrlTest
 
  namespace MsChartCtrlTest
115行目: 115行目:
 
   
 
   
 
             // 初期表示ダミーデータをデータグリッドに設定
 
             // 初期表示ダミーデータをデータグリッドに設定
             Random rnd = new Random();
+
             [[R]]andom rnd = new [[R]]andom();
 
             for (int i = 0; i < 10; i++)
 
             for (int i = 0; i < 10; i++)
 
             {
 
             {
121行目: 121行目:
 
                     "label" + i, (rnd.NextDouble() * 100).ToString()
 
                     "label" + i, (rnd.NextDouble() * 100).ToString()
 
                 };
 
                 };
                 dataGridView1.Rows.Add(row);   
+
                 dataGridView1.[[R]]ows.Add(row);   
 
             }
 
             }
 
   
 
   
155行目: 155行目:
 
             // グラフのタイプを設定
 
             // グラフのタイプを設定
 
             series.ChartType = (SeriesChartType)comboBox1.SelectedItem;
 
             series.ChartType = (SeriesChartType)comboBox1.SelectedItem;
             for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
+
             for (int i = 0; i < dataGridView1.[[R]]ows.Count-1; i++)
 
             {
 
             {
 
                 DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
 
                 DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
161行目: 161行目:
 
             }
 
             }
 
             this.chart1.Series.Add(series);
 
             this.chart1.Series.Add(series);
             this.chart1.ResetAutoValues();
+
             this.chart1.[[R]]esetAutoValues();
 
         }
 
         }
 
   
 
   

2020年2月16日 (日) 04:22時点における最新版

C# グラフ

C Sharp | Visual Studio |

Microsoft Chart Controls

インストール

チャートコントロールのアセンブリ

Visual Studio アドオン

0261 chartctrl01.jpg

ドキュメント

0262 chartctrl02.jpg

サンプル

  • MSDN Code Gallery
  • ここから、サンプルソリューションをダウンロードし、ビルドすると、WinFormsChartSamples.exe ができる。

0265 chartctrl05.jpg

WinFormsChartSamples.exe
  • サンプルの例およびソースコードが確認できるプログラム

0263 chartctrl03.jpg

  • ソースの確認

0264 chartctrl04.jpg

グラフの作成

単純なグラフ

0266 chartctrl06.jpg

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace MsChartCtrlTest
{
    public partial class Form1 : Form
    {
        private Chart chart1 = null;
        public Form1()
        {
            InitializeComponent();

            // 初期表示ダミーデータをデータグリッドに設定
            Random rnd = new Random();
            for (int i = 0; i < 10; i++)
            {
                string[] row = new string[] {
                    "axis_label" + i, (rnd.NextDouble() * 100).ToString()
                };
                dataGridView1.Rows.Add(row);    
            }

            // グラフコントロールを動的に配置
            chart1 = new Chart();
            
            ChartArea chartArea = new ChartArea();
            this.chart1.ChartAreas.Add(chartArea);
            this.chart1.Location = new System.Drawing.Point(12, 12);
            this.chart1.Size = new System.Drawing.Size(312, 228);
            this.Controls.AddRange(new System.Windows.Forms.Control[] { this.chart1 });
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // グラフの表示
            this.chart1.Series.Clear();

            Series series = new Series();
            for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
            {
                DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
                point.AxisLabel = dataGridView1.Rows[i].Cells[0].Value.ToString();
            }
            this.chart1.Series.Add(series);
            this.chart1.ResetAutoValues(); 
        }
    }
}

機能追加してみる

  • グラフタイプ変更(棒、折れ線、円)
  • 3D表示、回転

0267 chartctrl07.jpg

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace MsChartCtrlTest
{
    public partial class Form1 : Form
    {
        private Chart chart1 = null;
        public Form1()
        {
            InitializeComponent();

            // 初期表示ダミーデータをデータグリッドに設定
            Random rnd = new Random();
            for (int i = 0; i < 10; i++)
            {
                string[] row = new string[] {
                    "label" + i, (rnd.NextDouble() * 100).ToString()
                };
                dataGridView1.Rows.Add(row);   
            }

            // グラフのタイプを選択
            comboBox1.Items.Add(SeriesChartType.Bar);
            comboBox1.Items.Add(SeriesChartType.Line);
            comboBox1.Items.Add(SeriesChartType.Pie);
            comboBox1.SelectedItem = SeriesChartType.Bar;

            // 3Dの場合のY軸回転
            trackBar1.Maximum = 180;
            trackBar1.Minimum = -180;
            trackBar1.TickFrequency = 10;

            // グラフコントロールを動的に配置
            chart1 = new Chart();
           
            ChartArea chartArea = new ChartArea();
            this.chart1.ChartAreas.Add(chartArea);
            this.chart1.Location = new System.Drawing.Point(12, 12);
            this.chart1.Size = new System.Drawing.Size(312, 228);
            this.Controls.AddRange(new System.Windows.Forms.Control[] { this.chart1 });
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.chart1.Series.Clear();

            // 3Dスタイルの有効無効
            this.chart1.ChartAreas[0].Area3DStyle.Enable3D = checkBox1.Checked;
            Series series = new Series();

            // グラフのタイプを設定
            series.ChartType = (SeriesChartType)comboBox1.SelectedItem;
            for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
            {
                DataPoint point = series.Points.Add(Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value));
                point.AxisLabel = dataGridView1.Rows[i].Cells[0].Value.ToString();
            }
            this.chart1.Series.Add(series);
            this.chart1.ResetAutoValues();
        }

        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                this.chart1.ChartAreas[0].Area3DStyle.Rotation = trackBar1.Value;
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}