plotly绘图——填充区域图

本文介绍了如何使用Plotly的PlotlyExpress库在Python中创建填充区域图,包括基础填充图、图案填充和渐变填充的示例,以及相应的代码解释。通过gapminder数据集展示国家经济发展,利用medals_long数据集展示各国奥运奖牌分布,并演示了如何应用渐变效果增强视觉效果。
摘要由CSDN通过智能技术生成

介绍

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

区域填充图

基础填充图

代码解释

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

  • fig = px.area(…):这行代码调用了Plotly Express库中的area函数,用于创建一个面积图,并将结果存储在变量fig中。面积图是一种常用的图表类型,用于展示数据随时间的变化趋势,并且可以通过颜色填充来区分不同的数据系列。

  • x=“year”:这个参数指定了面积图的横轴变量,即年份。这将根据每个年份的数据在横轴上展示人口的变化。

  • y=“pop”:这个参数指定了面积图的纵轴变量,即人口数量。这将根据每个国家的人口数量在纵轴上展示数据的变化。

  • color=“continent”:这个参数指定了不同面积系列的颜色变量,即根据每个国家的所属大陆来为面积系列上色。这样可以在图表中直观地区分不同大陆的人口变化趋势。

  • line_group=“country”:这个参数指定了面积图的分组变量,即根据每个国家的名称来分组。这意味着每个国家的人口变化将被绘制为一个单独的面积层,并且每个面积层将根据color参数指定的大陆颜色进行填充。

import plotly.express as px
df = px.data.gapminder()
fig = px.area(df, x="year", y="pop", color="continent", line_group="country")
fig.show()

在这里插入图片描述

图案填充

代码解释

  • df = px.data.medals_long():这行代码从Plotly Express库中加载了一个内置的奥运会奖牌数据集,并将其存储在变量df中。这个数据集包含了不同国家在多届奥运会上获得的奖牌数量。

  • fig = px.area(df, x=“medal”, y=“count”, color=“nation”):这行代码调用了Plotly Express库中的area函数,用于创建一个面积图,并将结果存储在变量fig中。

  • x=“medal”:指定了面积图的横轴变量,即奖牌类型(金牌、银牌、铜牌)。

  • y=“count”:指定了面积图的纵轴变量,即每种奖牌的数量。

  • color=“nation”:指定了面积图的颜色变量,即根据每个国家的奖牌数量来上色,从而在图表中区分不同国家的奖牌数量。

  • pattern_shape=“nation”:这个参数指定了面积图中每个国家的图案形状,用于进一步区分不同国家的面积区域。"nation"表示图案形状将根据国家的名称变化。

  • pattern_shape_sequence=[“.”, “x”, “+”]:这个参数定义了一个图案形状的序列,用于在面积图中表示不同的国家。序列中的每个形状将按顺序分配给不同的国家。例如,第一个国家可能使用.作为图案形状,第二个国家使用"x",第三个国家使用"+",依此类推。

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

fig = px.area(df, x="medal", y="count", color="nation",
             pattern_shape="nation", pattern_shape_sequence=[".", "x", "+"])
fig.show()

在这里插入图片描述

渐变填充

代码解释

  • fig = go.Figure():首先创建了一个Figure对象,它是Plotly中所有图表的基础。这个对象可以包含多个图层(如散点图、线图、柱状图等),并且可以进一步自定义和操作。

  • 第一个go.Scatter对象:
    x=[1, 2, 3, 4]:这是第一个图层的横坐标数据,一个包含4个元素的列表。
    y=[3, 4, 8, 3]:这是第一个图层的纵坐标数据,与横坐标数据相对应。
    fill=None:这个参数指定了线条下方是否填充颜色。None表示不填充,即只显示线条本身。
    mode=“lines”:这个参数指定了图层的模式。"lines"表示图层将显示为线图,连接所有的数据点。
    line_color=“darkblue”:这个参数设置了线条的颜色为深蓝色。

  • 第二个go.Scatter对象:
    x=[1, 2, 3, 4]和y=[1, 6, 2, 6]:这是第二个图层的横坐标和纵坐标数据,与第一个图层的x轴数据相同,但y轴数据不同。
    fill=“tonexty”:这个参数指定了填充区域的类型。"tonexty"表示填充区域将从当前数据点延伸到下一个数据点的y轴值。
    mode=“lines”:与第一个图层相同,表示图层将显示为线图。
    line_color=“darkblue”:设置线条颜色为深蓝色。
    fillgradient=dict(type=“horizontal”, colorscale=[(0.0, “darkblue”), (0.5, “royalblue”), (1.0, “cyan”)]):这个参数定义了填充区域的渐变样式。
    type=“horizontal”:表示渐变是水平的,即从左到右变化。
    colorscale:定义了渐变的颜色范围,从0.0(深蓝色)到0.5(宝蓝色)再到1.0(青色)。

import plotly.graph_objects as go

fig = go.Figure(
    [
        go.Scatter(
            x=[1, 2, 3, 4],
            y=[3, 4, 8, 3],
            fill=None,
            mode="lines",
            line_color="darkblue",
        ),
        go.Scatter(
            x=[1, 2, 3, 4],
            y=[1, 6, 2, 6],
            fill="tonexty",
            mode="lines",
            line_color="darkblue",
            fillgradient=dict(
                type="horizontal",
                colorscale=[(0.0, "darkblue"), (0.5, "royalblue"), (1.0, "cyan")],
            ),
        ),
    ]
)

fig.show()

在这里插入图片描述

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值