[英]Plotly: How to prepare data visualization for below image using scatter bubble chart?
從您的數據集和附加圖像來看,您要求的是這樣的:
但我不確定那是你真正想要的。 您會看到,對於您的特定數據集,沒有足夠的維度來證明 animation 的合理性。 甚至是氣泡 plot。 這是因為您只查看一個值。 因此,您最終會通過氣泡大小和 y 軸顯示相同的值。 鑒於您提供的屏幕截圖實際上是您想要的 plot,因此實際上無需更改您的數據集。 但是,如果您願意,我們可以討論更多。
由於您尚未提供示例數據集,因此我使用了可通過 plotly express 獲得的數據集,並對其進行了重新調整以匹配您的數據集:
完整代碼:
# imports
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import math
import numpy as np
# color cycle
colors = px.colors.qualitative.Alphabet*10
# sample data with similar structure as OP
df = px.data.gapminder().query("continent=='Americas'")
dfp=df.pivot(index='year', columns='country', values='pop')
dfp=dfp[['United States', 'Mexico', 'Argentina', 'Brazil', 'Colombia']]
dfp=dfp.sort_values(by='United States', ascending = False)
dfp=dfp.T
dfp.columns = [str(yr) for yr in dfp.columns]
dfp = dfp[dfp.columns[::-1]].T
# build figure and add traces
fig=go.Figure()
for col, country in enumerate(dfp):
vals = dfp[country].values
yVals = [col]*len(vals)
fig.add_traces(go.Scatter(
y=yVals,
x=dfp.index,
mode='markers',
marker=dict(color=colors[col],
size=vals,
sizemode='area',
#sizeref=2.*max(vals)/(40.**2),
sizeref=2.*max(dfp.max())/(40.**2),
sizemin=4),
name = country
))
# edit y tick layout
tickVals = np.arange(0, len(df.columns))
fig.update_layout(
yaxis = dict(tickmode = 'array',
tickvals = tickVals,
ticktext = dfp.columns.tolist()))
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.