Pregunta

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

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

¿Fue útil?

Solución

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

gnuplot hará un gráfico de dispersión muy fácilmente. Siempre que los valores de x y y estén en 2 columnas separadas por espacios, entonces

plot "data.txt" using 1:2 

Te dará un diagrama de dispersión rápido. Luego puedes ajustarlo y no usar otros comandos de gnuplot.

Si estás involucrado en ciencias, entonces aprender gnuplot será muy valioso para ti. Elimina la mierda de hacer parcelas de Excel y facilita la tarea de hacer parcelas para incluir en los documentos.

Otros consejos

Si busca una biblioteca de C ++ en lugar de una herramienta de trazado independiente como gnuplot, consideraría lo siguiente:

dislin parece ser el más interesante de los dos. Aquí hay una descripción extraída del artículo de wikipedia:

  

DISLIN es una biblioteca de ploteo de alto nivel y fácil de usar desarrollada por Helmut Michels en el Instituto Max Planck en Katlenburg-Lindau, Alemania. Helmut Michels trabaja actualmente 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 de color 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 trazado para los lenguajes 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 se lanzó en diciembre de 1986.

     

El software DISLIN es gratuito para uso no comercial.

Solución muy pesada: puede enlazar con ROOT , que hará prácticamente todo lo que desee:

  • se ejecuta en Mac, Windows y Linux
  • se ejecuta compilado o usando el intérprete de cint
  • salida a un archivo en postscript encapsulado, PDF, gif, png ...
  • mostrar en la pantalla usando varias tecnologías diferentes
  • serialice los datos en un formato interno que pueda manipularse más adelante

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

Buen viejo GNU, lo tienen todo ...

http://directory.fsf.org/project/plotutils/

Esta no es la mejor manera, pero normalmente escribo archivos de salida que se pueden leer en R y use esto, junto con un script apropiado, para trazar los gráficos.

El problema aquí es que C ++, a diferencia de Java, por ejemplo, no tiene GUI o gráficos integrados. Si desea generar gráficos con C ++, deberá utilizar una biblioteca de GUI disponible para su sistema operativo. Hay bibliotecas de GUI gratuitas, muchas de ellas, como Qt o GTK.

Sin embargo, como lo han señalado otras personas, lo más fácil que puede hacer es 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 estándar con la mayoría de las distribuciones de Linux, y usted obtiene para Windows bajo cygwin.

Saludos a la trama en C ++ para cualquiera que no lo haya hecho todavía. Diré lo que hice para trazar gráficos en C ++

  1. Descargue el archivo comprimido " gp443win32.zip " de http://sourceforge.jp/projects/sfnet_guuotot/ descargas / gnuplot / 4.4.3 / gp443win32.zip /

  2. Extráigalo en " C: \ Gnuplot " luego leí " C: \ Gnuplot \ gnuplot \ README.Windows " y obtuve esta información:

  3. Utilicé Windows 7 == > por lo que necesita descargar " winhlp32.exe " ... simplemente búsquelo " winhlp32.exe Windows 7 " en un motor de búsqueda y vaya a través del primer enlace.

  4. Adjuntar a la " Ruta " Variable de entorno la ruta para la carpeta binaria que es " C: \ Gnuplot \ gnuplot \ binary "

  5. luego apago mi computadora y la abro nuevamente. Después descubrí que no se percibía el cambio en las variables de entorno: D

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

Obtendrá muchos y muchos gráficos, elija su gráfico apropiado, personalice su núcleo y disfrute :)

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top