2009-11-02 13 views
11

Regularmente hago figuras (el tipo de análisis exploratorio de datos) en R. También programo en Python y me preguntaba si hay características o conceptos en matplotlib que valdría la pena aprender. Por ejemplo, estoy bastante contento con R - pero su función image() producirá archivos grandes con salida pixelada, mientras que la figura equivalente de Matlab (también programo regularmente en Matlab) parece ser manejable en tamaño de archivo y también 'suavizada' - no matplotlib también proporciona tales reducciones ...? Pero, en términos más generales, me pregunto qué otras ventajas podría conferir matplotlib. No me refiero a que sea una pregunta trolling. Gracias.matplotlib para usuario R?

+1

eche un vistazo a esta pregunta similar: http://stackoverflow.com/questions/1177019/what-can-be-done-in-r-that-cant-be-done-with-python-numpy-scipy – dalloliogm

+1

Me doy cuenta de que esta es una vieja pregunta, pero para los visitantes nuevos: simplemente use [ggplot2] (http://ggplot2.org/). Tiene una curva de aprendizaje pronunciada, pero [grandes documentos] (http://docs.ggplot2.org/current/), y produce mejores gráficos que matplotlib por defecto. – naught101

Respuesta

11

Esta es una respuesta difícil.

Recientemente cambié parte de mi carga de trabajo de gráficos de R a matplotlib. En mi humilde opinión, encuentro que los gráficos de matplotlib son más bonitos (mejores colores predeterminados, se ven más nítidos y más modernos). También creo que matplotlib representa PNG mucho mejor.

Sin embargo, la verdadera motivación para mí fue que quería trabajar con mis datos subyacentes en Python (y numpy) y no en R. Creo que esta es la gran pregunta, en qué idioma quieres cargar, analizar y manipular sus datos?

Por otro lado, una ventaja para R es que los valores predeterminados de trazado funcionan (hay una función para todo). Me encuentro a menudo cavando a través de los documentos matplotlib (son gruesos) buscando alguna manera oscura para ajustar un borde o aumentar el grosor de una línea. Las rutinas de trazado de R tienen cierta madurez detrás de ellas.

+0

Gracias por tus pensamientos ... También tramo en Matlab, así que pensé que podría ser una transición fácil, pero puedo crear la mayoría de los gráficos que puedo imaginar en R (especialmente con gráficos de cuadrícula), así que supongo que esperaré matplotlib - Olvidé que hay detalles en la personalización para aprender en cada paquete y que sería un sumidero de tiempo no deseado en este momento ... – hatmatrix

3

Creo que la mayor ventaja es que matplotlib se basa en Python, que dices que ya sabes. Entonces, este es un idioma menos para aprender. Simplemente dedique el tiempo a dominar Python, y se beneficiará directamente de la tarea de trazado e indirectamente de sus otras necesidades de Python.

Además, IMHO Python es un lenguaje en general más rico que R, con muchas más bibliotecas que pueden ayudar en diversas tareas. Tienes que acceder a los datos para trazar, y los datos vienen en muchas formas. En cualquier forma que venga, estoy seguro de que Python tiene una biblioteca eficiente para ello.

¿Y qué hay de incluir esos gráficos en programas más completos, digamos simples GUI? matplotlib se une fácilmente con las librerías GUI de Python (como PyQT) y puedes hacer cosas que solo tu imaginación limita.

+0

Gracias por tu opinión - a pesar de que Python es más rico que R, estoy más cómodo con R en muchos aspectos : su lista integrada también puede ser un diccionario ordenado, creación rápida de entornos temporales (espacios de nombres) para el cálculo local, poderosas funciones anónimas ... La creación de la GUI es un '+' para Python - Lo uso con tramas generadas por Matlab + PIL a veces, pero también hago GUI simples en R para análisis interactivo. – hatmatrix

+1

Puede intentar llamar a R desde Python. Podría usar RPy, pero lo que suelo hacer es escribir código R en un archivo y luego ejecutar R como un proceso en modo batch, guardando los resultados en el disco y luego recogiéndolo desde Python. Funciona genial. – telliott99