plotly绘图——气泡图

本文详细介绍了如何使用Python库plotly创建基础气泡图,包括设置标记颜色、大小和不透明度,以及高级应用如带色阶的气泡图和分类气泡图,以Gapminder数据集为例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

plotly是一个易于使用,功能强大的python绘图库,用于构建可交互式的图表(可以自行运行后使用鼠标拖拽图片试试),本系列文章将介绍plotly绘制各种类型图的方法,本文将介绍——气泡图

气泡图

基础气泡图

代码解释

  • import plotly.graph_objects as go:这行代码首先导入了Plotly库中的graph_objects模块,并将其重命名为go。这样做是为了方便后续代码中对graph_objects模块的引用。

  • fig = go.Figure():这行代码创建了一个Figure对象,这个对象是Plotly中所有图表的基础。你可以把它想象成一个空白的画布,之后可以在其上添加数据和其他图表元素。

  • data=[go.Scatter(…)]:这里定义了一个包含单个Scatter对象的列表,这个Scatter对象将被添加到Figure对象中。Scatter对象是用来创建散点图的,它需要至少两个属性:x和y,分别代表散点图的横坐标和纵坐标。

  • mode=‘markers’:这个参数指定了Scatter对象的绘制模式。‘markers’模式意味着图表中只会显示数据点,而不会显示连接这些点的线。其他可能的模式包括’lines’(连接点的线)和’lines+markers’(既有线也有点)。

  • marker_size=[40, 60, 80, 100]:这个参数定义了每个数据点的大小。列表中的每个元素对应于x和y中相应位置的数据点。在这个例子中,第一个点的大小是40,第二个点的大小是60,以此类推。

import plotly.graph_objects as go

fig = go.Figure(data=[go.Scatter(
    x=[1, 2, 3, 4], y=[10, 11, 12, 13],
    mode='markers',
    marker_size=[40, 60, 80, 100])
])

fig.show()

在这里插入图片描述

给气泡图设置标记和大小颜色

代码解释

  • color=[‘rgb(93, 164, 214)’, ‘rgb(255, 144, 14)’, ‘rgb(44, 160, 101)’, ‘rgb(255, 65, 54)’]:这个键值对设置了不同标记的颜色。列表中的每个字符串都是一个RGB颜色代码,用于定义四种不同的颜色。RGB颜色代码是一种表示颜色的方式,它由三个介于0到255之间的整数组成,分别代表红色、绿色和蓝色的强度。例如,'rgb(93, 164, 214)'代表一种蓝色调,而’rgb(255, 65, 54)'代表一种红色调。

  • opacity=[1, 0.8, 0.6, 0.4]:这个键值对定义了标记的不透明度。不透明度是一个介于0(完全透明)到1(完全不透明)之间的数值。在这个例子中,第一个标记的不透明度为1(即完全不透明),第二个标记的不透明度为0.8,第三个为0.6,第四个为0.4。这意味着随着索引的增加,标记将逐渐变得更加透明。

  • size=[40, 60, 80, 100]:这个键值对设置了标记的大小。列表中的每个数值代表一个标记的直径(或者大小),单位是像素。在这个例子中,四个标记的大小分别为40、60、80和100像素。

import plotly.graph_objects as go

fig = go.Figure(data=[go.Scatter(
    x=[1, 2, 3, 4], y=[10, 11, 12, 13],
    mode='markers',
    marker=dict(
        color=['rgb(93, 164, 214)', 'rgb(255, 144, 14)',
               'rgb(44, 160, 101)', 'rgb(255, 65, 54)'],
        opacity=[1, 0.8, 0.6, 0.4],
        size=[40, 60, 80, 100],
    )
)])

fig.show()

在这里插入图片描述

带色阶的气泡图

代码解释

  • color=[120, 125, 130, 135, 140, 145]:这个列表定义了每个数据点的颜色。这里的颜色值是以简写形式给出的,每个值代表一个介于0到255之间的灰度值。例如,120代表中等亮度的灰色。

  • size=[15, 30, 55, 70, 90, 110]:这个列表定义了每个数据点的大小。数值越大,数据点在图表中显示得越大。

  • showscale=True:这个参数设置为True表示在图表中显示颜色的尺度滑块(color scale)。颜色尺度滑块是一种交互式元素,允许用户通过调整滑块来改变数据点的颜色映射。在这个例子中,由于颜色列表是单调递增的灰度值,尺度滑块将允许用户选择不同的颜色映射方式,以便更好地理解数据点的颜色变化。

import plotly.graph_objects as go

fig = go.Figure(data=[go.Scatter(
    x=[1, 3.2, 5.4, 7.6, 9.8, 12.5],
    y=[1, 3.2, 5.4, 7.6, 9.8, 12.5],
    mode='markers',
    marker=dict(
        color=[120, 125, 130, 135, 140, 145],
        size=[15, 30, 55, 70, 90, 110],
        showscale=True
        )
)])

fig.show()

在这里插入图片描述

分类气泡图

  • df = px.data.gapminder():这行代码从Plotly Express库中加载了一个内置的Gapminder数据集,并将其存储在变量df中。Gapminder数据集包含了多个国家从1952年到2007年间的经济发展指标,如人均GDP、人口数量等。

  • df.query(“year==2007”):这是一个Pandas DataFrame的查询操作,它从Gapminder数据集中筛选出年份为2007的记录。这意味着散点图将仅展示2007年的数据。

  • x=“gdpPercap”:这个参数指定了散点图的横轴变量,即人均GDP。这将根据每个国家的人均GDP值在横轴上定位数据点。

  • y=“lifeExp”:这个参数指定了散点图的纵轴变量,即寿命。这将根据每个国家的平均寿命在纵轴上定位数据点。

  • size=“pop”:这个参数指定了数据点的大小,根据每个国家的人口数量来缩放数据点的大小。人口越多的国家,其数据点在图表中显示得越大。

  • color=“continent”:这个参数指定了数据点的颜色,根据每个国家所在的大陆来为数据点上色。这样可以在图表中直观地区分不同大陆的国家。

  • hover_name=“country”:这个参数设置了鼠标悬停时显示的信息,当用户将鼠标悬停在某个数据点上时,将显示该数据点对应的国家名称。

  • log_x=True:这个参数表示横轴(人均GDP)将使用对数刻度。对数刻度有助于展示跨越多个数量级的数据,使得低收入和高收入国家之间的差异更加明显。

  • size_max=60:这个参数设置了数据点大小的最大值。在这个例子中,无论人口多少,数据点的最大直径都不会超过60个像素,以避免过大的数据点遮挡其他数据点或图表元素。

import plotly.express as px
df = px.data.gapminder()

fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp",
	         size="pop", color="continent",
                 hover_name="country", log_x=True, size_max=60)
fig.show()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值