如何自定义 Folium 颜色条中的标题文本?具体来说,我想增加颜色图标题文本的字体大小

问题描述 投票:0回答:1

我正在尝试在 Folium 中使用颜色条来绘制输出变量圆图

colormap = cm.LinearColormap(colors=['green','red'], index=[min(df['output']), max(df['output'])], vmin=min(df['output']),vmax=max(df['output']), caption='output in units')

folium.Circle(location=[row['Latitude'], row['Longitude']], 
                        radius=800*row["output"],
                        fill=True,
                        # opacity=0.8,
                        # fill_opacity=1,
                        color=colormap(row["output"])).add_to(m)

当我使用此代码时,标题文本“以单位输出”显得非常小。我想增加它的字体大小。请提出任何可能的解决方案

python folium colorbar
1个回答
0
投票

据我所知,没有直接的方法可以做到这一点,但是,您可以注入CSS

通过在 Chrome 上检查保存的大叶

Map
(使用 CTRL+SHIFT+I),标题的文本似乎位于
#legend > g > text
:

enter image description here

请注意,我们需要在选择器的前缀前添加

#svg
,因为 Branca 的
LinearColormap
会呈现为 SVG

import branca.colormap as cm
import folium
import pandas as pd

df = pd.DataFrame({"output": range(10, 110, 10)})

m = folium.Map(location=[39.5, -98.35], zoom_start=4)

agg = df["output"].agg(vmin="min", vmax="max")

colormap = cm.LinearColormap(
    colors=["green", "red"],
    index=agg.to_list(),
    caption="output in units",
    **agg.to_dict(),
)

CSS = "font-size: 16px;" # add more props if needed

m.get_root().header.add_child(
    folium.Element(f"svg#legend > g > text.caption {{{CSS}}}")

)
colormap.add_to(m)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.