Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

227
Visualizações
Streamlit devuelve un error si se agrega get_elevation a ColumnLayer

Soy nuevo en streamlit y estoy tratando de mostrar una capa pydeck con columnas. Quiero que la altura de la columna sea la columna de rain (mm) que estoy proporcionando en un marco de datos, pero cada vez que uso get_evelation="rain (mm)" , aparece el siguiente error:

 Error: Function calls not allowed in JSON expressions at http://localhost:8501/static/js/7.f6560317.chunk.js:2:512302 at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512666) at http://localhost:8501/static/js/7.f6560317.chunk.js:2:512596 at Array.forEach (<anonymous>) at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512568) at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512673) at t.default (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512250) at eh [as convertFunction] (http://localhost:8501/static/js/7.f6560317.chunk.js:2:1049691) at http://localhost:8501/static/js/7.f6560317.chunk.js:2:2778265 at y (http://localhost:8501/static/js/7.f6560317.chunk.js:2:2778495)

La función que estoy usando para renderizar mi mapa es la siguiente:

 def make_map2(data, lat, lon, zoom): column_layer = pdk.Layer( "ColumnLayer", data=data, get_position=["lon", "lat"], get_elevation="rain (mm)", elevation_scale=20, radius=2000, get_fill_color=[180, 0, 200, 140], pickable=True, auto_highlight=True, extruded=True ) tooltip={'html': 'Location: {location}</br> Date: {date} </br> Rainfall (mm): {rain_mm}</br> Type: {type}'} r = pdk.Deck(column_layer, initial_view_state={ "latitude": lat, "longitude": lon, "zoom": zoom, "pitch": 60 }, tooltip=tooltip, map_provider="mapbox", map_style='mapbox://styles/mapbox/light-v9', ) map2 = st.write(r) return map2

Los datos de entrada tienen esta estructura:

 date location lat lon rain (mm) type 0 2021-09-15 lowestoft 52.483 1.727 54.115513 predicted 1 2021-09-15 heathrow 51.479 -0.449 30.008739 predicted 2 2021-09-15 eastbourne 50.762 0.285 90.584396 predicted 3 2021-09-15 cambridge 52.245 0.102 51.445862 predicted 4 2021-09-15 manston 51.346 1.337 81.089737 predicted 5 2021-09-15 oxford 51.761 -1.262 39.420902 predicted
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto podría ser tan simple como un argumento mal escrito:

get_evelation="rain (mm)" debería ser get_elevation="rain (mm)"


Editar: independientemente del nombre del argumento mal escrito, este error ocurre en la forma en que pydeck analiza los literales de cadena. pydeck asume que rain (mm) es una llamada de función y arroja un error. Nombrar la columna get_elevation sin espacios ni paréntesis permite que el ejemplo funcione:

 import pandas as pd import numpy as np import streamlit as st import pydeck as pdk df = pd.read_csv("~/Desktop/data.csv") #to prove hypothesis, make column name one continuous string with no extra characters df["rain_noparens"] = df["rain (mm)"] view = pdk.data_utils.compute_view(df[["lon", "lat"]]) view.pitch = 75 view.bearing = 60 column_layer = pdk.Layer( "ColumnLayer", data=df, get_position=["lon", "lat"], get_elevation="rain_noparens", elevation_scale=20, radius=2000, get_fill_color=[180, 0, 200, 140], pickable=True, auto_highlight=True, ) tooltip = { "html": "Location: {location}</br> Date: {date} </br> Rainfall (mm): {rain (mm)}</br> Type: {type}" } r = pdk.Deck( column_layer, initial_view_state=view, tooltip=tooltip, map_provider="mapbox", map_style="mapbox://styles/mapbox/light-v9", ) st.pydeck_chart(r)

Ver también: https://github.com/streamlit/streamlit/issues/3992

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda