xticks how font change python python-3.x matplotlib install backend

python - how - matplotlib title position



matplotlib no dibujará python3 (4)

Matplotlib parece haber dado un gran paso hacia Python 3 con su versión 1.2.x. matplotlib 1.2.0rc2 (+ numpy 1.7.0b2) me funciona con

  • Python 3.2.2 (virtualenv en Linux Mint 12)
  • Python 3.3.0 (instalación local desde la fuente)

En ambos casos, matplotlib informa "TkAgg" como el back-end utilizado.

Desafortunadamente, no tengo idea si / cómo esto podría funcionar con Pyramid.

Instalé matplotlib con éxito dentro de un virtualenv. Ahora estoy tratando de que dibuje. Sé cómo cambiar el backend, pero me está costando mucho trabajo averiguar a qué cambiarlo.

¿Alguien ha logrado que funcione totalmente con python3? Si es así, ¿cómo?

He intentado muchas cosas. He recorrido todos los back-ends para ver cuáles son todas las quejas, no estoy tratando de hacer funcionar solo a una de ellas.

También vale la pena señalar que mi objetivo es integrarlo en una aplicación Pyramid.

Esto es lo que ha sucedido hasta ahora para todos los backends diferentes:

  • Agg: este fue el backend predeterminado. no dibuja
  • GTK: requiere pygtk que aparentemente no ha sido portado a python3
  • GTKAgg: ídem
  • GTKCairo: dice ''paquete requerido gtk'' asumir algo como lo de arriba
  • FltkAgg: no parece que tenga una versión de python3. A pesar de que se menciona en las preguntas frecuentes de la interfaz de usuario de python3. Supongo que fue solo un rouse. Caramba caramba
  • MacOSX: estoy ejecutando Ubuntu. asumido inapropiado
  • QtAgg: requiere pyqt. ver Qt4Agg
  • Qt4Agg: ver Instalar PyQt4 en un virtualenv
  • TkAgg: ImportError: no se puede importar el nombre _tkagg. Sin embargo, puedo ejecutar import tkinter en el intérprete, así que no estoy seguro de qué está roto todavía
  • WX: ImportError: Matplotlib backend_wx y backend_wxagg requieren wxversion, que no se encontró
  • WXAgg: ídem
  • CocoaAgg: ImportError: ¡El backend de CococaAgg requiere que se instale PyObjC!
  • GTK3Cairo: ImportError: el backend de GTK3 requiere que se instale pygobject. Intenté instalarlo, pero cuando intento configurarlo con el python correcto, se queja de que faltan los encabezados
  • GTK3Agg: ningún módulo llamado cairo. pero supongo que abordaré el mismo problema que el anterior
  • cairo: backend Cairo requiere que pycairo esté instalado
  • emf: Primero debes instalar pyemf desde http://pyemf.sf.net . Parece que se supone que debe hacer cosas de windowsey así que esta puede no ser una buena opción
  • gdk: no hay un módulo llamado gobject
  • pdf: funciona pero no dibuja
  • pgf: ídem
  • ps: ídem
  • svg: ídem
  • plantilla: ídem.

El script que estoy usando para probar mi backend es:

import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.show()

Hasta ahora he pasado demasiado tiempo tratando de hacer que python3.2 y qt4 jueguen bien, y parece que me estoy tropezando con problemas por todos lados. Entonces, en lugar de continuar con mi enfoque de prueba y error, quiero preguntar:

  1. ¿Cuál es la mejor opción para Python3.2 y Pyramid?
  2. ¿Cómo lo hago posible?

Mientras tanto, continuaré con la tarea de prueba y error y actualizaré mi pregunta a medida que avance.

NOTAS sobre cosas que estoy intentando

Para TkAgg:

dado que tkinter importa correctamente, supongo que está instalado correctamente (si estoy equivocado, supongo que hay una forma de probarlo). Este tipo http://ask.sagemath.org/question/626/sage-python-import-matplotlib-no-module-named tenía un problema similar, pero estoy seguro de que su configuración es diferente a la mía. La solución fue encontrar tkagg.py en las entrañas del directorio de paquetes de sitio de python3.2 y editar la declaración de importación ofensiva. Encuentro difícil de creer que los barcos matplotlib estén rotos (y no puedo ejecutar el código modificado sugerido ...)

Para cosas WX:

wxPython para Python 3 dice que aún no hay soporte para python3. Además, wxPython no menciona a python3 en su sitio, así que supongo que es un no-go. quedando sin opciones: /

Cacao:

Ídem: escribir aplicaciones de cacao en Python 3

EMF:

ídem: http://pyemf.sourceforge.net/README.html


Me encontré con el mismo problema, pero después de mucho esfuerzo logré hacer que TkAgg funcionara (lo que estaba dando el error de importación para _tkagg). Poco tarde, pero alguien podría encontrarlo útil.

FWIW Resolví el problema de la siguiente manera (para usar TkAgg):

  • Instalado tk-dev desde el administrador de paquetes
  • Se reinstaló python3-tk del administrador de paquetes
  • Reconstruido y reinstalado matplotlib de la fuente
  • (y, por supuesto, configurar TkAgg en matplotrc)

Si cree que tiene tk-dev y python3-tk instalados correctamente, necesita reconstruir y reinstalar matplotlib , de modo que genere _tkagg.py en su directorio de backends .

Estoy usando Python3.3 (numpy 1.7) en LM14. Pero creo que debería funcionar en Ubuntu / Python3.2


He estado haciendo compilaciones de origen de python 3.3.2 y matplotlib. Como se señaló anteriormente, TkAgg funciona. Si está construyendo todo desde la fuente:

  1. sudo apt-get install tk-dev
  2. Reconstruir python3 (make clean; ./configure; make)
  3. Limpie matplotlib (elimine el huevo de virtualenv, elimine los objetos de caché de ~ / .config / matplotlib)
  4. Reconstruido matplotlib desde la fuente (rm -r build /; python setup.py build; python setup.py install)

Finalmente llegué a ver esa caja tonta emergente con mi línea x = y.

horas ....


Escribí una respuesta para asegurar que matplotlib en un virtualenv de Python 3 en Ubuntu 16.04 use el backend de TkAgg en https://askubuntu.com/a/785506/15003 que puede ser útil aquí. El resultado es instalar tk-dev , activar el virtualenv y reinstalar matplotlib en el virtualenv:

sudo apt install tk-dev source venv/bin/activate pip --no-cache-dir install -U --force-reinstall matplotlib

python -c ''import matplotlib as mpl; print(mpl.get_backend())'' python -c ''import matplotlib as mpl; print(mpl.get_backend())'' ahora debería decir TkAgg .