Plotly。如何用散点气泡图为下面的图片准备数据可视化?

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

这是我清理csv文件后的数据集。

enter image description here

下面是我想要的输出

enter image description here

我想要的是,在X轴上显示年份,在Y轴上显示列值,并通过播放动画按钮显示不同颜色和大小的气泡。

我是数据科学的新手,谁能帮助我,我如何实现这个目标?

pandas plotly data-science
1个回答
0
投票

从你的数据集和所附的图片来看,你要的是什么?要求 是这样的。

enter image description here

但我不确定这是否是你的真实想法。想要. 你看,你的特定数据集没有足够的维度来证明动画的存在。甚至是一个气泡图。这是因为你只看到了 一个 的值,所以你最终会在气泡大小和Y轴上显示相同的值。所以你最终在气泡大小和Y轴上显示的是同一个值。如果你提供的截图就是你想要的图形,那么就没有必要改变你的数据集。但如果你愿意的话,我们可以再讨论一下这个问题。

由于你没有提供样本数据集,我使用了一个可以通过plotly express获得的数据集,并对其进行了调整,使之与你的数据集相匹配。

enter image description here

完整的代码

# 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()
© www.soinside.com 2019 - 2024. All rights reserved.