Developing

C# – Real Time Chart

Introduction

In this post I will show how to create a “Real Time” chart using C# and ZedGraph.

Esse post mostra como criar gráficos em tempo real utilizando o ZedGraph.

Class

public partial class RealTime : Form
{
CreateGraph createGraph = new CreateGraph();

PointPairList PPL = new PointPairList();

int contador = 0;

public RealTime()
{
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{
ZedGraphControl zgc = new ZedGraphControl();

createGraph.SetSize(zgc, ClientRectangle.Width - 50, ClientRectangle.Height - 50);

this.Controls.Add(zgc);

// Cria o gráfico
//createGraph.Create(zgc, "Teste", "Teste X", "Teste Y",
//                   Valores(contador++), "Teste", SymbolType.Circle);

// get a reference to the GraphPane

GraphPane myPane = zgc.GraphPane;

// Seta os títulos

myPane.Title.Text = "";
myPane.XAxis.Title.Text = "";
myPane.YAxis.Title.Text = "";

// Gera a curva
LineItem myCurve = myPane.AddCurve("", Valores(contador++), Color.Blue);

// Teoricamente esse comando era para ajustar o grafico
// igualmente o comando botao direito set scale to default
// Mas não esta funcionando.
zgc.RestoreScale(myPane);
zgc.Refresh();

// Tell ZedGraph to refigure the axes since the data have changed
zgc.AxisChange();

label1.Text = contador.ToString();
}

private void RealTime_Load(object sender, EventArgs e)
{
timer1.Enabled = true;

timer1.Interval = 2000;
}

private PointPairList Valores(Double cont)
{
double x, y;
Random rand = new Random();

//DateTime x = new DateTime();

//x = DateTime.Now;
x = cont;
y = rand.Next(10, 100);

PPL.Add(cont, y);

return PPL;
}
}

Also View

C# – Change ProgressBar Color

C# – Screenshot

C# – ReadOnly CheckBox

_____

Não se esqueça de deixar seu comentário, critica, elogio, dúvida e etc. Ele é muito importante para a melhoria do blog.
Do not forget to leave your comments, criticism, praise, questions, etc.. It is very important for improving the blog.

Advertisements

Comments on: "C# – Real Time Chart" (7)

  1. Olá Guilherme, saudações.
    Para mostrar o que esta acontecendo, capturei imagens do projeto e postei em meu blog.

    http://ocaccy.blogspot.com/2011/09/criando-grafico-zedgraph-no-visual.html

    Por favor, responde aqui mesmo para o pessoal acompanhar o tuto por aqui.
    Abraços,
    silvio pontes

  2. Guilherme saudações.

    Postei um vídeo com o ZedGraph plotando um gráfico.
    Mas não consegui fazer funcionar a data e hora no EIXO X.
    Dá uma luz por favor.

    http://ocaccy.blogspot.com/2011/09/video-with-zedgraph-plotting-graph.html

    Abraços.
    silvio pontes

    • Estou sem tempo mas dê uma olhada neste trecho:

                  PointPairList list2 = new PointPairList();
                  for (int i = 0; i < 36; i++)
                  {
                      //double x = new XDate(1995, 1, 1, 1, 1, i + 1);
                      System.Threading.Thread.Sleep(100);
                      double x = new XDate(DateTime.Now);
                      double y = Math.Sin((double)i * Math.PI / 15.0);
                      double y2 = 2 * y;
      
                      list2.Add(x, y2);
                  }
                              
                  // Gera a curva
                  //LineItem myCurve = myPane.AddCurve("", Valores(contador++), Color.Blue);
                  LineItem myCurve = myPane.AddCurve("", list2, Color.Blue);
      
                  // Configura eixo X com tipo Date
                  myPane.XAxis.Type = AxisType.Date;
      
                  myPane.XAxis.Scale.Format = "HH:MM:ss";
      

  3. Guilherme,

    muito bom, agora esta entrando a hora e a data com esta formula

    myPane02.XAxis.Type=AxisType.Date;
    myPane02.XAxis.Scale.Format = “HH:mm:ss\nyy/MM/dd”;

    porem o 1o ponto entra no centro do gráfico e com a entrada de outros pontos, a linha esta sempre centralizada no gráfico e sempre tem um padding interno.

    Estamos quase lá, e tenho uma boa notícia.

    O desenvolvedor do ZedGraph (“Ronan” (rjosulli)) me enviou esta mensagem.
    https://sourceforge.net/projects/zedgraph/

    Hi silvio,

    Can you tell me a little bit about yourself and what you\\\’d
    like to achieve with Zedgraph? I have some interest at the
    moment, and the project has really ground to a halt, I\\\’d
    like to get some people involved with dev. Let me know what
    you think.

    Ronan

    Abraços.

    • Eiii Silvio bacana. Muito interessante o interesse do desenvolvedor do ZedGraph no seu projeto. Realmente você esta utilizando recursos do ZedGraph que não seriam tão comuns, já que você está obrigando o ZedGraph a refazer o grafico em curtos ciclos de tempo.

      Não entendi direito o que está acontecendo. Não tem como você fazer algum video me explicando melhor?

      Essa semana e a próxima estarei bem ocupado, mas conferme ter um tempinho livre tendo lhe ajudar!

      Abraços.

  4. […] C# – Real Time Chart […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: