es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mis líneas no se trazan correctamente en altair.chart.mark_geoshape.

Necesito trazar los ríos en Idaho desde este sitio web

Cuando lo cargo en geopandas e intento trazarlo a través de altair.Chart().mark_geoshape(), mi gráfico muestra un montón de líneas aleatorias y no se están trazando como se esperaba. No sé qué está sucediendo porque soy nuevo en datos geoespaciales.

Seguí el patrón de este ejemplo https://altair-viz.github.io/gallery/london_tube.html pero no pude trazar las líneas.

¡Cualquier pensamiento o cómo puedo hacer esto sería de gran ayuda! A continuación se muestra el código que estoy usando. ¡Gracias!

“`
import altair como alt
import geopandas como gpd
from vega_datasets import data

estados = alt.topo_feature(data.us_10m.url,'estados')
hydro = gpd.read_file('drive/MyDrive/data/cse350/hyd250/hyd250.shp')

rivers = hydro.loc[hydro.FEAT_NAME.isin(['Snake River','Henrys Fork'])]

rchart = alt.Chart(rivers).mark_geoshape().encode(color = 'FEAT_NAME')

idaho = alt.Chart(estados).mark_geoshape(fill = 'white',stroke = 'black').project(
'albersUsa'
).transform_calculate(state_id = "(datum.id)"
).transform_filter((alt.datum.state_id)==16)

rchart+idaho“`

Si puede resolver esto, ¡sería genial! Gracias por tu ayuda! Ya he pasado demasiadas horas tratando de hacer que esto funcione.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar en cómo se está leyendo la información en geopandas. Aquí hay algunas sugerencias que podrían ayudar:

    1. Asegúrese de que la ruta del archivo de datos sea correcta. Verifique la ubicación del archivo y asegúrese de que el código apunte al directorio correcto.
    2. Verifique el Sistema de Referencia de Coordenadas (CRS) de los datos. Es posible que los datos estén en una proyección diferente a la esperada por Altair. Use el atributo .crs del GeoDataFrame para ver el CRS actual y use .to_crs() para reproyectar los datos.

    3. Intente visualizar los datos con otro paquete como folium o bokeh para ver si el problema es específico de Altair o si hay algo más sucediendo con los datos.

    4. En lugar de trazar los datos como un GeoDataFrame, intente convertirlos a un formato JSON utilizando .to_json() y trazar eso en su lugar.

    Es difícil decir exactamente cuál es el problema sin ver los datos o el gráfico resultante, ¡pero esperamos que estas sugerencias lo ayuden a encontrar una solución!

Comments are closed.