Hallo Leute,
ich habe vor ein paar Tortendiagramme auf eine Karte zu plotten um Anteile in verschiedenen Regionen anzuzeigen.
Karten kann ich ja mit basemap plotten und Tortendiagramme erstelle ich mit pyplot.pie - jetzt muss ich also nur noch die beiden Sachen zusammenbringen und genau da liegt mein Problem: Ich finde keinen Weg, die Position so einer Torte auf der Karte festzulegen oder ihre Größe anzupassen.
Hat jemand von euch eine Idee?
Danke schonmal!
gilb
Piechart auf Karte plotten
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
schau dir mal das Beispiel an: http://scipy.org/Cookbook/Matplotlib/Maps
Dort werden zwar Städtenamen auf den Globus geplottet, aber was du letztendlich drauf plottest ist ja egal.
Plan B: Beides als .png mit transparentem Hintergrund speichern und dann mit PIL übereinander legen. Ist aber wahrscheinlich recht fummelig...
Gruß, noisefloor
schau dir mal das Beispiel an: http://scipy.org/Cookbook/Matplotlib/Maps
Dort werden zwar Städtenamen auf den Globus geplottet, aber was du letztendlich drauf plottest ist ja egal.
Plan B: Beides als .png mit transparentem Hintergrund speichern und dann mit PIL übereinander legen. Ist aber wahrscheinlich recht fummelig...
Gruß, noisefloor
Also so sieht im Wesentlichen das Beispiel hinter dem Link aus.
Und ich würde gern in den letzten Zeilen etwas derartiges machen:
Code: Alles auswählen
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
map = Basemap(projection='ortho',lat_0=50,lon_0=-100,resolution='l',area_thresh=1000.)
map.drawcoastlines()
map.drawcountries()
map.drawmapboundary()
lats=[40.02,32.73]
lons=[-105.16,-117.16]
cities=['Boulder, CO','San Diego']
x,y = map(lons,lats)
map.plot(x,y,'bo')
for name,xpt,ypt in zip(cities,x,y):
plt.text(xpt+50000,ypt+50000,name)
plt.show()
Code: Alles auswählen
proportions=[[0.3,0.2,0.5],[0.6,0.1,0.3]]
for prop,xpt,ypt in zip(proportions,x,y):
plt.pie(prop) #hier würde ich gern Position(xpt,ypt) auf der Karte und Größe bestimmen
plt.show()
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ohne es getestet zu haben (habe die Module alle nicht installiert...) würde ich sagen:
Kann so nicht funktioniert. Also rein vom Prinziop nicht. Die kriegst die Position so nicht unter.
Anstatt mit der for-Schleife zu iterieren würde ich zum Testen es erstmal händisch machen: Also jede Tortengrafik generieren und dann auf Welkarte plotte.
Gruß, noisefloor
ohne es getestet zu haben (habe die Module alle nicht installiert...) würde ich sagen:
Kann so nicht funktioniert. Also rein vom Prinziop nicht. Die kriegst die Position so nicht unter.
Anstatt mit der for-Schleife zu iterieren würde ich zum Testen es erstmal händisch machen: Also jede Tortengrafik generieren und dann auf Welkarte plotte.
Gruß, noisefloor