Suite

Problème d'utilisation de Matplotlib dans QGIS


Je développe un plugin QGIS et pour le graphique, je souhaite utiliser matplotlib, comme beaucoup d'autres plugins QGIS.

Cela a bien fonctionné sous Linux, mais sous Windows avec QGIS2.4, je rencontre des problèmes.

J'ai vérifié et matplotlib semble être inclus dans l'installation standard de Windows de QGIS. Mais lorsque les gens essaient d'installer le plugin, ils obtiennent ce rapport :

Le plugin est cassé : pas de module nommé tkinter

Il s'avère que même si j'utilise pyqt, matplotlib nécessite tkinter et cela semble être exclu de l'installation de QGIS.

Est-ce un bug ? (devrais-je le signaler ?)

Ou existe-t-il un moyen d'utiliser matplotlib sans charger tkinter ?

Si j'ai vraiment besoin de tkinter, comment puis-je résoudre ce problème ? Comme tkinter est un package python binaire, je ne peux pas l'inclure dans mon plugin ou existe-t-il une alternative (pyQWT est également binaire, donc pas non plus une solution)

J'appelle matplotlib de cette façon :

de matplotlib.backends.backend_qt4agg importer FigureCanvasQTAgg en tant que FigureCanvas de matplotlib.backends.backend_qt4agg importer NavigationToolbar2QTAgg en tant que NavigationToolbar importer matplotlib.pyplot en tant que plt

c'est la version expérimentale (1.2.0) de ce plugin, si vous voulez l'essayer : http://plugins.qgis.org/plugins/geopunt4Qgis/


OK j'ai trouvé le problème. J'ai apporté les modifications suivantes à mon code afin qu'il n'essaie plus de charger tkinter :

J'ai changé:

importer matplotlib.pyplot en tant que plt

dans:

à partir de matplotlib.figure import Figure à partir des axes d'import matplotbib

et changer plt.figure() dans Chiffre() etc…


J'ai trouvé la solution ici : https://github.com/gem/oq-irmt-qgis/issues/224. Certains plugins bloquent l'accès au module tkinter.


Voir la vidéo: QGIS Rasterize Vector to Raster. how to convert shapefile to raster in QGIS 向量資料網格化 (Octobre 2021).