我使用Python:图表:泡泡地图中的库来显示国家的average_score。然而,average_score的值介于2-4之间,因此泡泡图中气泡的大小差别不大(气泡的大小非常相似)。如何在数值2-4的泡泡之间实现更大的差异?
这是我的代码:
plot = px.scatter_geo(df, locations="country_code", color="country_code", size_max=20,hover_name="country_code", size="avg_score", animation_frame="year", projection="natural earth",title="Bubble Map",labels={"country_code": "Country"})发布于 2022-01-27 09:02:39
我会把你的原始数据提升到一个适合你想要建立的可视化的数字的力量。这使得更大的数字看起来比sall数字大得不成比例。比较下面两幅图,其中第一幅是来自文档的文档示例,第二部分是人口df['pop']的相同数据已被df['pop']**1.6替换。
1. df['pop']的原始数据

1. df['pop']的数据提高到1.6的威力

当然,这些数字在图中没有其他业务,因此您必须包括以下内容,以保持正确的漫游信息:
fig.update_traces(hovertemplate = 'pop=%{text}<br>iso_alpha=%{location}<extra></extra>', text = df['pop'])

完整代码:
import plotly.express as px
df = px.data.gapminder().query("year == 2007")
df['pop_display'] = df['pop']**1.6
fig = px.scatter_geo(df, locations="iso_alpha",
size="pop_display",
)
fig.update_traces(hovertemplate = 'pop=%{text}<br>iso_alpha=%{location}<extra></extra>', text = df['pop'])
fig.show()发布于 2022-01-27 07:31:00
你所问的不是一个纯粹的问题,而是一个一般的数学问题。
给定输入2,3,4 step=1。返回步骤> 1的对应整数。有多种方法可以做到这一点:一种方法是将所有项乘以一个整数。
[2,3,4] * 2 = [4, 6, 8] # step=2
[2,3,4] * 3 = [6, 9, 12] # step=3
...在这种情况下,新值之间的差值将线性增加。这意味着所有值之间的步骤将保持不变。如果您希望逐步以非线性的方式增长,则可以对项目进行平方处理:
[2,3,4]^2 = [4, 9, 16] # step=5, 7...
[2,3,4]^3= [8, 27, 64] # step=19,37...
...可能性真的是无限的。这完全取决于你想要的泡沫之间的差异。在代码中,快速和肮脏的解决方案如下所示:
plot = px.scatter_geo(df,
locations="country_code",
color="country_code",
size_max=20,
hover_name="country_code",
size=df["avg_score"]**2,
animation_frame="year",
projection="natural earth",
title="Bubble Map",
labels={"country_code": "Country"}
)https://stackoverflow.com/questions/70874630
复制相似问题