2008-10-18 23 views
18

¿Cuál es la mejor manera de graficar diagramas de dispersión en C++?Diagramas de dispersión en C++

¿Escribe datos en un archivo y utiliza otra herramienta? ¿Hay una biblioteca como matplotlib en Python?

+0

cheque http://stackoverflow.com/a/40612989/2192115 – SAAD

Respuesta

27

Siempre escribo datos y luego uso gnuplot para crear mis gráficos. Es la mejor forma que he encontrado de producir gráficos en una variedad de formatos: eps, png, jpeg, xpm, lo que sea.

gnuplot hará la gráfica de dispersión muy fácilmente. Siempre que los x y y valores están en 2 columnss separados por espacios, entonces

plot "data.txt" using 1:2 

le dará un gráfico de dispersión rápida. Entonces puede ajustarlo y lo que no usando otros comandos gnuplot.

Si está involucrado en ciencias, entonces aprender gnuplot será muy valioso para usted. Es una patada para hacer las tramas de Excel con certeza y facilita la tarea de hacer tramas para incluir en los documentos.

4

Esto ciertamente no es la mejor manera, pero normalmente escribo archivos de salida que se pueden leer por R y uso esto, junto con una secuencia de comandos apropiada, para trazar los gráficos.

11

Si usted está buscando una biblioteca de C++ en lugar de que la herramienta de trazado independiente como gnuplot, consideraría lo siguiente:

DISLIN parece ser el más interesante de los dos. He aquí una descripción extraída del artículo de Wikipedia:

DISLIN es un alto nivel y fácil de usar el trazado de la biblioteca desarrollado por Helmut Michels en el Instituto Max Planck en Katlenburg-Lindau, Alemania. Helmut Michels actualmente trabaja como matemático y administrador de sistemas Unix en el centro de cómputo del instituto.

La biblioteca DISLIN contiene rutinas y funciones para mostrar datos como curvas, gráficos de barras, gráficos circulares, gráficos en 3D, superficies, contornos y mapas. Se admiten varios formatos de salida como X11, VGA, PostScript, PDF, CGM, HPGL, SVG, PNG, BMP, PPM, GIF y TIFF.

DISLIN está disponible para los lenguajes de programación Fortran 77, Fortran 90/95 y C. Las extensiones de ploteo para los idiomas Perl, Python y Java también son compatibles con la mayoría de los sistemas operativos. La versión actual de DISLIN es 9.4, lanzada en octubre de 2008. La primera versión 1.0 fue lanzada en diciembre de 1986.

El software DISLIN es gratuito para uso no comercial.

3

El problema aquí es que C++, Java a diferencia de, por ejemplo, no se han incorporado en la interfaz gráfica de usuario o los gráficos. Si desea generar gráficos con C++, necesitará usar una biblioteca GUI disponible para su sistema operativo. Hay bibliotecas de GUI gratuitas, muchas plataformas cruzadas como Qt o GTK.

Sin embargo, como han señalado otras personas, lo más fácil para usted sería guardar los datos en un archivo de texto y usar otro programa para generar el gráfico. gnuplot es definitivamente una buena opción. Viene de serie con la mayoría de las distribuciones de Linux, y obtienes para Windows bajo cygwin.

1

Si está familiarizado con matplotlib, puede embed python en aplicaciones C/C++. Dependiendo de para qué lo desee, esta podría ser una solución rápida.

0

Chart Director tiene enlaces para C++. He usado sus bibliotecas .Net, y he estado muy feliz con ellas. Es una biblioteca bastante barata, y te da el poder de hacer todo tipo de gráficos diferentes.

8

Solución muy pesada: se podría enlazar con ROOT, que va a hacer casi cualquier cosa que desee:

  • se ejecuta en Mac, Windows y Linux
  • corridas compilado o utilizando el cint interperter
  • de salida a un archivo en postscript encapsulado, PDF, gif, png ...
  • mostrar en la pantalla utilizando varias tecnologías diferentes
  • serializar los datos en un interno f ormat que puede ser manipulado más tarde

Claro, es un poco demasiado para la mayoría de las personas, pero sí hace exactamente lo que usted pidió. Lo uso porque lo sé y ya está en mis máquinas porque soy ese tipo de físico.

1

Saludos trazado en C++ para cualquier persona que no lo hizo todavía. Voy a decir lo que hice para trazar gráficos en C++

  1. descargar el archivo comprimido "gp443win32.zip" de http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/

  2. Extraer en "C: \ Gnuplot" luego leí "C: \ gnuplot \ \ gnuplot README.Windows " y me dieron esta información:

  3. he usado Windows 7 ==> por lo que necesita para descargar "winhlp32.exe" ... sólo la búsqueda de que" winhlp32.exe de Windows 7 "en un motor de búsqueda y pasar por el primer enlace.

  4. Anexar a la variable de entorno "Path" el camino para la carpeta binaria que es "C: \ Gnuplot \ gnuplot \ binario"

  5. entonces apagado el ordenador y abrirlo de nuevo. Después me encontré con que no sentir el cambio en las variables de entorno: D

  6. que necesita ahora para escribir un código de ejemplo para probar su habilidad trazado :) para que pueda visitar este enlace http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk para ver la el archivo de encabezado "gnuplot_i.hpp" y el archivo de origen "example.cc".

Usted conseguirá muchos y muchos gráficos, elige el gráfico apropiado, personalizar su núcleo, y disfrutar :)

Cuestiones relacionadas