问题描述
有谁知道如何编辑 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")
解决方法
目前,您必须在输入数据中创建一个单独的字段,该字段是格式正确的字符串,例如,
df['formatted_distance'] = df['mrt_distance'].apply(lambda d: f'{round(d,2):,}')
然后您可以在工具提示中按名称提及此列。