数据可视化-8. 气泡图

目录

1. 气泡图的构成

2. 气泡图的适用场景

3. 气泡图局限性

4. 气泡图的代码实现

4.1 Python 代码

4.2 气泡图效果(网页展现)

        

气泡图(Bubble Chart)是散点图的一种变体。

它在原有的以横纵坐标为变量的基础上,引入第三个变量,用气泡的大小来表示。

因此,气泡图能够同时展示三个变量之间的关系。

1. 气泡图的构成

        气泡图可以理解为扩展的散点图(Scatter Plot)。因为人们对圆形和颜色的感知相对直观,这种可视化方式能够帮助非专业人士更好地理解数据。其主要构成包括:

  • X轴和Y轴:分别表示两个变量,用来确定气泡的位置。
  • 气泡大小:气泡的面积或半径反映第三个变量的数值大小,数据的大小可以一目了然。
  • 气泡颜色(可选):用颜色来表示第四个变量或类别信息,方便比对,这样就可以达到支持分组和分类的作用。

2. 气泡图的适用场景

        气泡图常用于需要展示多变量关系的场景,例如:

  1. 展示多维信息:气泡图能够同时展示多个变量之间的关系,使得数据分析和信息传达更加直观和高效。如展示销售额(X轴)、利润(Y轴)、市场规模(气泡大小)。
  2. 识别趋势与模式:通过气泡的大小和颜色,可以轻松地识别数据中的趋势、模式和异常值。如人口统计中用气泡大小代表国家人口,X轴表示GDP,Y轴表示人均收入。
  3. 强调异常值:当一个气泡远离其他气泡时,它可能表示一个数据点与其他点有显著不同的值,这有助于进一步研究和分析异常。

3. 气泡图局限性

     气泡图也有其局限性如:

  • 信息过载:如果气泡太多,会显得杂乱无章。
  • 大小误解:人眼对面积大小的感知不够精确,可能影响数据解读。
  • 维度限制:虽然可以表示四个变量,但超过四维会导致理解困难。

4. 气泡图的代码实现

4.1 Python 代码

        Dash 模块是一个非常好用的模块!

        请注意,在气泡图的代码实现中,和散点图不一样的就是 go.Scatter 函数中的这个参数 

        size=np.random.rand(30) * 50,

        当size 是固定值时候,可以理解为散点图,当size是动态变化时候,就是气泡图。

import dash
from dash import html, dcc
import plotly.graph_objects as go
import dash_bootstrap_components as dbc
import numpy as np


def create_advanced_charts():
    """
    创建高级图表示例
    返回一个包含多个图表的列表
    """
    # 2. 气泡图
    np.random.seed(42)
    bubble_fig = go.Figure(data=[
        go.Scatter(
            x=np.random.rand(30),
            y=np.random.rand(30),
            mode='markers',
            marker=dict(
                size=np.random.rand(30) * 50,
                color=np.random.rand(30),
                colorscale='Viridis',
                showscale=True,
                sizemode='area'
            ),
            text=['气泡 ' + str(i) for i in range(30)]
        )
    ])
    bubble_fig.update_layout(
        title='气泡图示例',
        xaxis_title='X轴',
        yaxis_title='Y轴',
        template='plotly_white'
    )
    return(bubble_fig)


app = dash.Dash(__name__)

app.layout = html.Div([
    html.H3("高级图表展示", className="text-center mt-4 mb-3"),
    dcc.Graph(figure=create_advanced_charts())
])


if __name__ == "__main__":
    app.run_server(debug=True, port=8051)
4.2 气泡图效果(网页展现)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值