visual usar tutorial propiedades como charting chart c# charts plot gps richtextbox

usar - Diagrama de trazado con valores de richTextBox C#



graph on c# (2)

Asumiendo que:

  • richTextBox es una instancia de la clase System.Windows.Forms.RichTextBox ;
  • chart es una instancia de la clase System.Windows.Forms.DataVisualization.Charting.Chart .

El siguiente método está destinado a analizar una matriz de string :

private static readonly CultureInfo EnglishCulture = CultureInfo.GetCultureInfo("en-US"); private static Tuple<double, double>[] GetData(string[] lines) { return Array.ConvertAll(lines, line => { string[] elems = line.Split('',''); return new Tuple<double, double>(double.Parse(elems[3], EnglishCulture), double.Parse(elems[1], EnglishCulture)); }); }

Uso:

var data = GetData(richTextBox.Lines);

Ahora solo necesita vincular esta matriz de data como DataSource un gráfico o agregarlos manualmente a la serie como se muestra a continuación:

chart.Series.Clear(); Series series = new Series("sample") { ChartType = SeriesChartType.Line, BorderWidth = 2, MarkerSize = 5, MarkerStyle = MarkerStyle.Square }; foreach (var p in data) series.Points.Add(p.Item1, p.Item2); chart.Series.Add(series);

¿es posible trazar gráficos de datos que se recopilan desde richTextBox? Por ejemplo, tengo el siguiente texto en richTextBox:

$GPRMC,152908.00,A,5307.0794359,N,02308.8918827,E,0.049,188.6,280612,0.0,E,D*3A $GPRMC,152909.00,A,5307.0794307,N,02308.8918792,E,0.081,193.3,280612,0.0,E,D*3A $GPRMC,152910.00,A,5307.0794343,N,02308.8918811,E,0.034,42.9,280612,0.0,E,D*0F $GPRMC,152911.00,A,5307.0794410,N,02308.8918827,E,0.099,1.3,280612,0.0,E,D*30 $GPRMC,152912.00,A,5307.0794461,N,02308.8918808,E,0.055,331.9,280612,0.0,E,D*32

Y quiero gráfico de trama, por ejemplo, Latitud (tiempo):

5307.0794359 -> 152908.00 5307.0794307 -> 152909.00 5307.0794343 -> 152910.00 5307.0794410 -> 152911.00 5307.0794461 -> 152912.00

No sé cómo escribir una función, que recuperará la latitud de las líneas [1,2,3,4,5] y el tiempo de las líneas [1,2,3,4,5]. Y luego traza un gráfico.

Necesito una función universal, porque puedo tener datos de 100 líneas o 400 líneas, etc.

¿Alguien puede ayudarme? Cuenta para mí cualquier ayuda (código, ejemplo, consejos o enlaces).


Encuentro respuesta para mi pregunta. Cambio "un poco" una línea en el código creado por Dmitry. Aquí está:

Previamente código:

private static readonly CultureInfo EnglishCulture = CultureInfo.GetCultureInfo("en-US");

Nuevo código (acaba de agregar System.Globalization antes de CultureInfo) y funciona en Visual Studio 2012 Ultimate), antes del cambio tengo el error "CultureInfo no encontrado":

private static readonly System.Globalization.CultureInfo EnglishCulture = CultureInfo.GetCultureInfo("en-US");

No sé por qué el código anterior no me funciona ... Tal vez sea por la versión de Visual System. Sin embargo, todo funciona ahora bien, y es divertido porque ahora también funciona en el código anterior, y lo mismo con el nuevo cambio. No sé qué está pasando, pero todo está bien.

Gracias Dmitry, por tu ayuda.

PD. VERRY IMPORTANTE (al principio debemos declarar esto):

using System.Globalization;