Seite 1 von 1
error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 07:50
von naheliegend
Hi,
wenn ich dieses bisschen code laufen lasse:
Code: Alles auswählen
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
import mplleaflet
fig, ax = plt.subplots()
bla_df.plot(
ax=ax,
column='test';
cmap='tab20',
alpha=0.7,
)
plt.show()
mplleaflet.display(fig=fig)
kommen eine Reihe an Fehlern:
(...) self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: invalid command name "."
During handling of the above exception, another exception occurred:
Traceback (most recent call last): (...)
Ich weiß nicht, wie ich weitermachen soll.
Gruß
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 08:13
von Jankie
Ist das der gesamte Code oder nur ein Teil vom Code?
Ich kenne mich leider nicht damit aus, aber ich glaube dass es nicht richtig ist die Parameter bei plot() mit einem ; zu trennen.
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 08:29
von naheliegend
Stimmt, du hast Recht. Habe ich geändert, ändert aber nichts am eigentlichen Fehler.
Nein, vorher werden noch die Daten eingelesen, was aber nicht weiter zur Sache tut.
Mit
plt.show()
bekomme ich keinen Fehler. Möchte aber die interaktive Map gerne nutzen.
Weswegen ich noch mplleaflet.display(fig=fig) angefügt habe.
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 08:33
von __blackjack__
Das tut in sofern was zur Sache als das hier niemand einfach nachvollziehen kann was da tatsächlich passiert. Ein minimales, lauffähiges Beispiel ist in der Regel ganz nett, damit man das einfach mal selbst ausführen kann.
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 09:21
von naheliegend
Okey.
Hier könnt ihr euch die Poly-Daten von Deutschland herunterladen:
https://www.suche-postleitzahl.org/downloads
Es ist die plz-gebiete.shp.zip
Entpacken und dann die plz-gebiete.shp eingelesen
Code: Alles auswählen
import geopandas as gpd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mplleaflet
plz_shape_df = gpd.read_file('LINKZURDATEI/Data/plz-gebiete.shp', dtype={'plz': str})
fig, ax = plt.subplots()
plz_shape_df.plot(ax=ax, color='orange', alpha=0.8)
#mit plt.show() funktioniert es
#plt.show()
mplleaflet.display(fig=fig)
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 10:16
von __blackjack__
Ich bekomme da eine `UserWarning` und es passiert sonst weiter nichts:
Code: Alles auswählen
$ ./forum18.py
/usr/local/lib/python3.6/dist-packages/IPython/core/display.py:694: UserWarning: Consider using IPython.display.IFrame instead
warnings.warn("Consider using IPython.display.IFrame instead")
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 11:51
von naheliegend
hm. gut. Woran liegt das?
habe alle Bibliotheken ganz normal über pip isntalliert.
Im Internet wird beschrieben, dass mein "widget" irgendwie destroyed wird zu irgeneinem Zeitpunkt und das einen fehler hervorruft.
Re: error bei mplleaflet.display()
Verfasst: Donnerstag 4. Juni 2020, 12:28
von __blackjack__
Ich habe auch alle Bibliotheken über ``pip`` installiert. `display()` ist anscheinend dazu da in einem IPython-Notebook aufgerufen zu werden. Das wäre eine nette Information gewesen, dass Du das gar nicht als Programm ausführst. In Jupyterlab bekomme ich aber die gleiche Warnung. Und mein System steigt wegen Speichermangel aus.
Re: error bei mplleaflet.display()
Verfasst: Samstag 6. Juni 2020, 08:00
von naheliegend
Okey, danke für die Hilfe. Den generellen Fehler konnte ich nicht beheben.
ich habe eine andere Bibliothek: Folium gefunden, welche genau das mitbringt, wonach ich gesucht habe.