Yo recomendaría realizar las tareas intensivas de visualización y los UIs en un front-end separado, dado que R y Matlab no están optimizados para renderizar eficientemente gráficos y otras visualizaciones.
Si puede ejecutar aplicaciones WPF/Silverlight en su máquina, le recomiendo encarecidamente SciChart ( http://www.scichart.com/ ). Cumple con todos sus requisitos. La librería está dirigida a C#/WPF pero me imagino que también funcionará bien con Visual Basic u otros lenguajes .Net. Antes de continuar te recomiendo que veas la demo de Silverlight (no requiere descarga ni registro) en Demostración de SciChart . He probado extensamente la biblioteca y ahora la utilizo para un proyecto y cumple con todos mis requisitos.
En cuanto a sus requisitos:
-
Zoom y desplazamiento -> Está incorporado y funciona fuera de la caja, usted puede abordar esta cuestión a través de código-behind o establecer y personalizar las propiedades y la funcionalidad dentro de xaml (preferido).
-
Añadir líneas verticales/horizontales/... -> se puede hacer fácilmente. Veo que se añaden características de anotación con cada nueva versión, sin embargo, la biblioteca actual ya ofrece amplias capacidades de anotación. Echa un vistazo a lo siguiente ( http://www.scichart.com/annotations-are-easy/ y http://www.scichart.com/questions/question/multiple-rollover-modifiers-mvvm )
-
Calcular el rendimiento entre puntos -> No estoy seguro de lo que quiere decir con esto, pero si mi suposición es correcta, entonces puede calcular las medidas de rendimiento relativas y generar una serie de datos separada y renderizarla porque los ejes son totalmente personalizables. Si se refiere a algo diferente, por favor, explíquelo.
-
Añadir indicadores técnicos -> Puede añadir cualquier dato o serie temporal que desee. Los indicadores técnicos no se proporcionan fuera de la caja, pero recomiendo siempre calcular dicha métrica por su cuenta y simplemente utilizarla como fuente de datos para construir una serie de datos y representarla en un gráfico.
-
Posibilidad de exportar el gráfico al portapapeles -> No sólo eso, sino que también puede imprimir o guardar fácilmente los gráficos en varios formatos. También puede almacenar fácilmente la plantilla específica utilizada para el gráfico, así como los ajustes utilizados, de modo que la próxima vez que cargue el front-end se restablecerán sus ajustes de visualización.
Quiero señalar los puntos en los que esta biblioteca brilla en comparación con otras bibliotecas, pero también en los que veo margen de mejora:
-
Quizás la característica más fuerte de SciChart es el rendimiento. La representación de millones de puntos de datos en un gráfico de dispersión, en un gráfico de líneas, en un gráfico de acciones (OHLC) y en otros muchos estilos de gráficos no sólo tiene un alto rendimiento, sino que también es extremadamente sencilla de realizar. Sólo conozco otra biblioteca que juega en la liga del rendimiento de SciChart. Utilizo esta biblioteca para visualizar datos de series temporales basados en ticks y puedo renderizar 5 millones de puntos de datos (he oído hablar de personas que intentaron renderizar decenas de millones de puntos de datos y lo consiguieron) y desplazarme, desplazarme y hacer zoom a velocidades de fotogramas muy satisfactorias. Me permite esencialmente hacer zoom y ampliar la serie de tiempo a puntos de datos individuales, el eje Fecha/Hora puede ser personalizado para mostrar marcas de tiempo de milisegundos o incluso de mayor resolución (algo que no se podía hacer con varias otras bibliotecas cuando las probé).
-
La biblioteca no es gratuita, pero el coste de adquirir una licencia es razonable en comparación con otras bibliotecas.
-
A través de xaml y de la capacidad de derivar de ciertas clases base y de una bindabilidad muy bien diseñada, el estilo y la personalización de las anotaciones, los tipos de ejes y etiquetas, los tipos de gráficos, los tipos de series renderizables, los paneles, la sincronización de múltiples gráficos, la interactividad con el ratón/teclado, entre otros, se pueden lograr sin mucho esfuerzo.
-
El tiempo de respuesta así como la calidad de la respuesta del personal de apoyo me parecieron exquisitos. Hice muchas preguntas al personal y planteé varios tickets de soporte al principio y, por lo general, me atendieron en 24 horas. Eso fue incluso cuando probé el producto. Varias preguntas sólo surgieron porque tenía requisitos muy específicos sobre un problema relacionado con múltiples paneles de gráficos.
-
Aunque está bien probada, y al parecer es bastante bien recibida por los desarrolladores de algunas instituciones financieras y aparentemente es muy utilizada por los científicos que requieren capacidades de visualización de alto rendimiento, la biblioteca es todavía una empresa bastante reciente. Puede que no ofrezca la misma cantidad de contenido en su foro de soporte que los que llevan una década o más, pero de nuevo me resultó agradable interactuar con el personal de soporte, que fue receptivo y ayudó con ciertos detalles. Así que, inmaduro no es probablemente el término correcto porque funciona absolutamente estable en producción, pero no es la biblioteca más madura que existe.
-
La librería se especializa en gráficos de alto rendimiento para WPF/Silverlight y hace su trabajo de manera excelente, sin embargo, no ofrece otros controles como diagramas, controles de tablero, controles de lista o de cuadro de texto. Yo mismo prefiero trabajar siempre con lo mejor que mi presupuesto pueda comprar y utilizar esta librería sólo para los gráficos. Otros proveedores brillan en otras categorías y puedo apreciarlo.
En resumen, yo tenía requisitos muy similares a los que usted expuso y esta biblioteca hizo y sigue haciendo un trabajo fantástico para satisfacer mis requisitos. Utilizo una implementación de gráficos para las visualizaciones de datos de alta frecuencia y otra, cuyo estilo es muy similar al de la biblioteca de gráficos de Bloomberg, para la visualización general de series temporales de precio/volumen de baja frecuencia.
Divulgación: En algún momento recibí una compensación no monetaria a cambio de prestar un servicio a SciChart. Pero creo que esta recomendación/revisión está sesgada sólo en el sentido de que realmente creo en la calidad de esta biblioteca y de las personas que la apoyan porque yo mismo la probé extensamente y ahora la uso y encontré que cumple con todos mis requisitos de visualización de series de tiempo.