[英]Python plotly treemap / sunburst with too many items
[英]Set treemap colour by categories in Plotly in Python
我试图在 Plotly 中按不同的大陆设置颜色。 我想知道如何实现这一目标。
import plotly.express as px
import numpy as np
df = px.data.gapminder().query("year == 2007")
fig = px.treemap(df, path=[px.Constant("world"), 'continent', 'country'], values='pop',
color='lifeExp', hover_data=['iso_alpha'],
color_continuous_scale=['#32a852', '#3261a8', '#a83259'],
color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))
fig.show()
将繁重的工作留给 Plotly Express ,一旦构建了图形,请修改marker_color
列表
import plotly.express as px
import numpy as np
df = px.data.gapminder().query("year == 2007")
fig = px.treemap(
df,
path=[px.Constant("world"), "continent", "country"],
values="pop",
color="lifeExp",
hover_data=["iso_alpha"],
color_continuous_scale=["#32a852", "#3261a8", "#a83259"],
color_continuous_midpoint=np.average(df["lifeExp"], weights=df["pop"]),
)
fig.update_layout(margin=dict(t=50, l=25, r=25, b=25))
cm = {
"Asia": "red",
"Africa": "yellow",
"Americas": "white",
"Europe": "blue",
"Oceania": "black",
}
fig.for_each_trace(
lambda t: t.update(
marker_colors=[
cm[id.split("/")[1]] if len(id.split("/")) == 2 else c
for c, id in zip(t.marker.colors, t.ids)
]
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.