none
折れ線グラフを使用したいのですが。 RRS feed

  • 質問

  • 現在Visual Studio 2005 Standard Editionを使用していますが、

    「折れ線グラフ」を容易に使用できるのでしょうか?

    よろしくお願い致します(_ _)

    2009年1月5日 11:13

回答

  • こんばんは!(^^)!ふ~です。

     

    Code Snippet

    using System;
    using System.Drawing;
    using System.Windows.Forms;

    namespace SimpleLineChart
    {
        public partial class Form1 : Form
        {
            // グラフ描画範囲 横300ドット 縦200ドット
            // 描画原点 左上(X0,Y0)
            // 折れ線グラフのプロット位置
            PointF[] pData = { new PointF(   0.0F, (200.0F -   0.0F)),
                               new PointF( 100.0F, (200.0F - 100.0F)),
                               new PointF( 150.0F, (200.0F - 150.0F)),
                               new PointF( 200.0F, (200.0F - 180.0F)),
                               new PointF( 250.0F, (200.0F - 150.0F)),
                               new PointF( 300.0F, (200.0F - 100.0F)) };
            public Form1()
            {
                InitializeComponent();

                // グラフ描画範囲 横300ドット 縦200ドットに設定する
                this.panel1.Size = new System.Drawing.Size(300, 200);
            }

            private void panel1_Paint(object sender, PaintEventArgs e)
            {
                //メモリ
                for (int i = 0; i < 300; i += 50)
                {
                    e.Graphics.DrawRectangle(new Pen(Color.Brown, 1), i, 0, 50, 200 - 1);
                }
                e.Graphics.DrawRectangle(new Pen(Color.Blue, 2), 1, 1, 300-2, 200 - 2);

                // グラフをパネルに表示する。
                e.Graphics.DrawLines( new Pen(Color.Black, 2), pData); 
            }
        }
    }

     

     

    <作り方>

    1.Form1にツールボックスのPanelを貼り付けて使います。

    2.pDataの中に折れ線グラフのプロット位置データを格納します。

    3.原点が左上にある為、左下に原点をする為に、200.0Fからプロット位置を引きます。

    4.線の太さで、描画位置を調整します。

    2009年1月5日 15:29

すべての返信

  • 標準ではないライブラリを使用して良いのであれば「ZedGraph」を使うと比較的楽に使えると思います。

     

    [参考]

    オープンソースのグラフ・コントロール「ZedGraph」を使う

     

    記事内のサンプルソースはVBですが、ライブラリに付属のサンプルはC#です。

     

    2009年1月5日 12:10
  • こんばんは!(^^)!ふ~です。

     

    Code Snippet

    using System;
    using System.Drawing;
    using System.Windows.Forms;

    namespace SimpleLineChart
    {
        public partial class Form1 : Form
        {
            // グラフ描画範囲 横300ドット 縦200ドット
            // 描画原点 左上(X0,Y0)
            // 折れ線グラフのプロット位置
            PointF[] pData = { new PointF(   0.0F, (200.0F -   0.0F)),
                               new PointF( 100.0F, (200.0F - 100.0F)),
                               new PointF( 150.0F, (200.0F - 150.0F)),
                               new PointF( 200.0F, (200.0F - 180.0F)),
                               new PointF( 250.0F, (200.0F - 150.0F)),
                               new PointF( 300.0F, (200.0F - 100.0F)) };
            public Form1()
            {
                InitializeComponent();

                // グラフ描画範囲 横300ドット 縦200ドットに設定する
                this.panel1.Size = new System.Drawing.Size(300, 200);
            }

            private void panel1_Paint(object sender, PaintEventArgs e)
            {
                //メモリ
                for (int i = 0; i < 300; i += 50)
                {
                    e.Graphics.DrawRectangle(new Pen(Color.Brown, 1), i, 0, 50, 200 - 1);
                }
                e.Graphics.DrawRectangle(new Pen(Color.Blue, 2), 1, 1, 300-2, 200 - 2);

                // グラフをパネルに表示する。
                e.Graphics.DrawLines( new Pen(Color.Black, 2), pData); 
            }
        }
    }

     

     

    <作り方>

    1.Form1にツールボックスのPanelを貼り付けて使います。

    2.pDataの中に折れ線グラフのプロット位置データを格納します。

    3.原点が左上にある為、左下に原点をする為に、200.0Fからプロット位置を引きます。

    4.線の太さで、描画位置を調整します。

    2009年1月5日 15:29
  • Office Web Components を使うという手段もあります。

     

    ライセンスの問題とかありますし、あまり容易ではなさそうですが、興味があれば

    グーグルなどで検索すると例が出てきますので、調べてみてください。

     

    2009年1月5日 15:37
  • マイクロソフトが提供しているMicrosoft Chart Controls for Microsoft .NET Framework 3.5を使ってみるのはどうでしょう。
    VisualStudioのアドオンもあります。
    3D折れ線や対数グラフもできるので、結構使えると思います。

    #2.0ターゲットでReportViewerをつかって対数グラフを描かせたり
    2009年1月6日 3:51