Support for Basemap
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Ambito
- data-visualization
Direzione di ricerca
Inizia esaminando l’implementazione personalizzata proposta di geom_basemap e il modo in cui plotnine.ggplot gestisce la fase di disegno. Confronta l’esempio di basemap di contextily con i concetti della Grammar of Graphics, quindi determina l’API e la categoria appropriate per il supporto delle basemap. Il lavoro è completo quando sono disponibili un design concordato, l’implementazione e la copertura per gli usi supportati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
@nimisha-18, I was able to add a basemap by implementing a custom geom subtype that adds the basemap during plotnine.ggplot's draw phase:
from __future__ import annotations
import typing
import pandas as pd
from plotnine.geoms.geom import geom
import contextily as ctx
if typing.TYPE_CHECKING:
from typing import Any
import pandas as pd
from matplotlib.axes import Axes
from plotnine.coords.coord import coord
from plotnine.iapi import panel_view
class geom_basemap(geom):
DEFAULT_PARAMS = {
"stat": "identity",
"position": "identity",
"na_rm": False,
"crs": "EPSG:3857",
"source": ctx.providers.OpenStreetMap.Mapnik,
}
def draw_panel(
self,
data: pd.DataFrame,
panel_params: panel_view,
coord: coord,
ax: Axes,
**params: Any,
):
crs = params["crs"]
source = params["source"]
ctx.add_basemap(ax, crs=crs, source=source)
To use it in your example, you would just add it like any other layer:
plot3 = plot2 + geom_basemap(source=ctx.providers.OpenStreetMap.Mapnik)
plot3.show()
Aside, the geom_basemap concept as a geom, at least to me, doesn't fit well with the ideas outlines in The Grammar of Graphics. Im not sure what category a basemap falls within so calling this a geom is likely conceptually incorrect. Just something to think about.
Originally posted by @aaraney in https://github.com/has2k1/plotnine/discussions/850#discussioncomment-12436571
- Lingua principale
- Python
- Stelle
- 4.8k
- Fork
- 260
- Merge medio
- 2g 12h
- PR unite (30g)
- 4
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di has2k1/plotnine
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Enhancement
Difficoltà 3/5 Mezza giornata Idoneità per principianti 55/100
has2k1/plotnine#1141 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
has2k1/plotnine#1081 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Discussion
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
has2k1/plotnine#1047 · 15 commenti · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Documentation Plot Composition Question
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
has2k1/plotnine#1036 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di has2k1/plotnine
Issue simili
-
area: providers/aws priority: p2 size: S type: bug type: testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
finos/open-resource-broker#851 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
sandialabs/atlas-ui-3#1196 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ShaftHQ/SHAFT_ENGINE#7902 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: GraphML export writes invalid XML when a value contains a control character (e.g. form feed)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
topoteretes/cognee#6646 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
DOI-USGS/pywatershed#428 ·