#html #python-3.x #streamlit #pydeck
#HTML #python-3.x #streamlit #pydeck
Вопрос:
Кто-нибудь знает, как отредактировать часть всплывающей подсказки графика pydeck. В частности, я хочу изменить mrt_distance
в части html, чтобы отобразить ее в целом числе, с запятой в тысячах. Например, 2143.45 meters
должно отображаться как 2,143 meters
.
import pandas as pd
import pydeck as pdk
DATA_URL = "https://raw.githubusercontent.com/ajduberstein/geo_datasets/master/housing.csv"
df = pd.read_csv(DATA_URL)
view = pdk.data_utils.compute_view(df[["lng", "lat"]])
view.pitch = 75
view.bearing = 60
column_layer = pdk.Layer(
"ColumnLayer",
data=df,
get_position=["lng", "lat"],
get_elevation="price_per_unit_area",
elevation_scale=100,
radius=50,
get_fill_color=["mrt_distance * 10", "mrt_distance", "mrt_distance * 10", 140],
pickable=True,
auto_highlight=True,
)
tooltip = {
"html": "<b>{mrt_distance}</b> meters away from an MRT station, costs <b>{price_per_unit_area}</b> NTD/sqm",
"style": {"background": "grey", "color": "white", "font-family": '"Helvetica Neue", Arial', "z-index": "10000"},
}
r = pdk.Deck(
column_layer,
initial_view_state=view,
tooltip=tooltip,
map_provider="mapbox",
map_style=pdk.map_styles.SATELLITE,
)
r.to_html("column_layer.html")
Ответ №1:
В настоящее время вам необходимо создать отдельное поле во входных данных, представляющее собой строку в соответствующем формате, например,
df['formatted_distance'] = df['mrt_distance'].apply(lambda d: f'{round(d, 2):,}')
Затем вы можете указать этот столбец по имени во всплывающей подсказке.