plotly express 中直接更改大小模式的任何方法
Any way to change the size mode directly in plotlyexpress
我有一个气泡图,我不确定它是使用直径还是面积来表示气泡大小。简短的 google 告诉我默认值似乎是直径,我听说人类倾向于通过面积来感知大小? (如果我错了请纠正我,但这正是我通过讲座了解到的内容。)因此,我试图找出一种方法将 sizemode 更改为 area 但是似乎无法以 plotly express 的方式做到这一点。这是我目前的代码供参考。
import plotly.express as px
fig = px.scatter(data_frame = df, x="hf_score", y="Happiness.Score",
size="GNI_capita", color="region", hover_name="countries", size_max=60,
labels={
"hf_score" : "Human Freedom Index 2017 (0-10)",
"Happiness.Score" : "Happiness Score 2017 (0-10)",
"GNI_capita" : "GNI/capita 2017 by Atlas Method ($USD)",
"region" : "World Bank Region"
},
title="Happiness & Freedom Score by Region & GNI/capita")
编辑:
使用的数据集:https://github.com/mattshu0410/data-1002-project/blob/master/merged_data.csv
图像创建:
用 go.scatter
绘制更新后的数据。如果不使用 sizeref=
,气泡会缩小 sizeref=
以使其变大。因为没时间所以不能全部都点缀,但我觉得我有骨架
import plotly.graph_objects as go
size = df['GNI_capita'].tolist()
fig = go.Figure(data=[go.Scatter(x=df["hf_score"],
y=df["Happiness.Score"],
mode='markers',
marker=dict(color=size,
size=size,
sizemode='area',
sizeref=2.*max(size)/(40.**2))
)])
fig.show()
我有一个气泡图,我不确定它是使用直径还是面积来表示气泡大小。简短的 google 告诉我默认值似乎是直径,我听说人类倾向于通过面积来感知大小? (如果我错了请纠正我,但这正是我通过讲座了解到的内容。)因此,我试图找出一种方法将 sizemode 更改为 area 但是似乎无法以 plotly express 的方式做到这一点。这是我目前的代码供参考。
import plotly.express as px
fig = px.scatter(data_frame = df, x="hf_score", y="Happiness.Score",
size="GNI_capita", color="region", hover_name="countries", size_max=60,
labels={
"hf_score" : "Human Freedom Index 2017 (0-10)",
"Happiness.Score" : "Happiness Score 2017 (0-10)",
"GNI_capita" : "GNI/capita 2017 by Atlas Method ($USD)",
"region" : "World Bank Region"
},
title="Happiness & Freedom Score by Region & GNI/capita")
编辑:
使用的数据集:https://github.com/mattshu0410/data-1002-project/blob/master/merged_data.csv
图像创建:
用 go.scatter
绘制更新后的数据。如果不使用 sizeref=
,气泡会缩小 sizeref=
以使其变大。因为没时间所以不能全部都点缀,但我觉得我有骨架
import plotly.graph_objects as go
size = df['GNI_capita'].tolist()
fig = go.Figure(data=[go.Scatter(x=df["hf_score"],
y=df["Happiness.Score"],
mode='markers',
marker=dict(color=size,
size=size,
sizemode='area',
sizeref=2.*max(size)/(40.**2))
)])
fig.show()