当前位置: 首页 > news >正文

01LinePlot

Line Plot 线图

线图(Line Plot)是数据可视化中最常用且直观的图表类型之一,广泛应用于时间序列分析、趋势展示以及变量关系探索等场景。本文将围绕线图的特点、使用场景、图表解读、图形变体以及核心函数参数解读展开讨论,并通过具体代码示例帮助读者深入理解如何高效利用线图进行数据分析。


1. 线图的特点

线图的主要特点包括以下几点:

  1. 直观性:线图通过连续的线条连接数据点,能够清晰地展示变量之间的变化趋势。
  2. 适用性强:适用于时间序列数据、多维数据比较以及变量间的关系展示。
  3. 交互性强:结合工具如Plotly,线图可以实现悬停显示详细信息、缩放和平移等功能,增强用户对数据的理解。
  4. 灵活性高:可以通过调整颜色、线条样式、标记点等方式自定义图表外观。

2. 使用场景

线图在数据分析中有着广泛的应用场景,主要包括以下几种:

  1. 时间序列分析
    线图非常适合用于展示随时间变化的数据趋势,例如股票价格、天气数据或销售业绩等。

  2. 多变量比较
    当需要比较多个变量的趋势时,线图可以通过不同的颜色或样式区分各变量。

  3. 变量关系探索
    线图可用于探索两个变量之间的关系,尤其是在非线性关系中,能够直观地观察到变化规律。

  4. 预测与拟合
    在机器学习和统计建模中,线图常用于展示模型预测结果与实际值的对比。


3. 图表解读

通过线图,我们可以快速获取以下信息:

  • 总体趋势:观察线条的整体走向,判断数据是增长、下降还是保持稳定。
  • 关键转折点:识别线条中的峰值、谷值或突变点,这些可能是重要事件或异常情况的反映。
  • 变量关系:当绘制双轴或多变量线图时,可以分析不同变量之间的相关性或因果关系。

以本文提供的代码为例,我们绘制了瑞典和日本的“人均GDP vs 预期寿命”线图。从图中可以看出:

  • 瑞典的数据呈现一条平滑的上升曲线,表明其人均GDP和预期寿命之间存在正相关关系。
  • 日本的数据则同时包含线条和标记点,便于更细致地观察每个数据点的具体位置。

4. 图形变体

为了适应不同的应用场景,线图有多种变体形式,以下是常见的几种:

  1. 单线图
    仅展示单一变量的变化趋势,适合简单的时间序列分析。

  2. 多线图
    同一图表中绘制多条线,用于比较多个变量的趋势。

  3. 带标记点的线图
    在数据点处添加标记,便于突出显示特定数据点。

  4. 堆叠线图
    将多条线图堆叠在一起,适合展示部分与整体的关系。

  5. 带阴影区域的线图
    在线条下方填充颜色,形成面积图效果,增强视觉冲击力。


5. 核心函数参数解读

在Plotly中,go.Scatter 是创建线图的核心函数。以下是代码样例中涉及的关键参数及其作用:

5.1 xy

  • 作用:分别指定X轴和Y轴的数据。
  • 示例
    x = df1.lifeExp, y = df1.gdpPercap
    
    表示将瑞典的预期寿命作为X轴,人均GDP作为Y轴。

5.2 mode

  • 作用:定义线条的显示模式,可选值包括:
    • "lines":仅显示线条。
    • "markers":仅显示标记点。
    • "lines+markers":同时显示线条和标记点。
  • 示例
    mode = "lines"  # 仅显示线条
    mode = "lines+markers"  # 显示线条和标记点
    

5.3 name

  • 作用:为每条线指定名称,用于图例显示。
  • 示例
    name = "Sweden"  # 指定线名为“Sweden”
    

5.4 marker

  • 作用:设置标记点的样式,包括颜色、大小和透明度。
  • 示例
    marker = dict(color = 'rgba(16, 112, 2, 0.8)')
    
    表示设置标记点颜色为绿色,透明度为0.8。

5.5 layout

  • 作用:定义图表的整体布局,包括标题、坐标轴标签等。
  • 示例
    layout = dict(
        title = 'GDP per Capita vs Life Expectancy',
        xaxis= dict(title= 'Life Expectancy', ticklen= 5, zeroline= False),
        yaxis= dict(title= 'GDP per Capita', ticklen= 5, zeroline= False)
    )
    
    设置图表标题为“GDP per Capita vs Life Expectancy”,并定义X轴和Y轴的标签及样式。

6. 示例代码解析

以下是本文提供的完整代码解析:

import plotly.express as px
import plotly.graph_objects as go
from plotly.offline import init_notebook_mode, iplot, plot


# 数据准备
df1 = px.data.gapminder().query("country in ['Sweden']")
df2 = px.data.gapminder().query("country in ['Japan']")

# 创建trace1(瑞典)
trace1 = go.Scatter(
    x = df1.lifeExp,  # X轴数据:预期寿命
    y = df1.gdpPercap,  # Y轴数据:人均GDP
    mode = "lines",  # 仅显示线条
    name = "Sweden",  # 线名
    marker = dict(color = 'rgba(16, 112, 2, 0.8)')  # 标记点颜色
)

# 创建trace2(日本)
trace2 = go.Scatter(
    x = df2.lifeExp,
    y = df2.gdpPercap,
    mode = "lines+markers",  # 显示线条和标记点
    name = "Japan",
    marker = dict(color = 'rgba(80, 26, 80, 0.8)')
)

# 组合数据
data = [trace1, trace2]

# 定义布局
layout = dict(
    title = 'GDP per Capita vs Life Expectancy',  # 图表标题
    xaxis= dict(title= 'Life Expectancy', ticklen= 5, zeroline= False),  # X轴标签
    yaxis= dict(title= 'GDP per Capita', ticklen= 5, zeroline= False)  # Y轴标签
)

# 创建图表
fig = go.Figure(data = data, layout = layout)
fig.show()
fig.write_image( './images/01_plotly_LinePlot.png')

plotly_LinePlot

运行上述代码后,将看到一张包含两条线的图表,分别表示瑞典和日本的人均GDP与预期寿命的关系。

相关文章:

  • 【蓝桥杯速成】| 12.回溯排列N皇后
  • leetcode day30 134+135+860
  • 深挖增长内核:好产品驱动增长的全方位解析
  • 深度解析:TOML、XML、YAML及其他配置/数据格式对比
  • 用YoloV8训练一个图片检测的模型,我接下来要做哪些事
  • 《深入Linux内核架构》读书笔记--第三章 内存管理
  • 【含文档+PPT+源码】基于Python的全国景区数据分析以及可视化实现
  • 【例3.5】位数问题(信息学奥赛一本通-1313)
  • BertTokenizer.from_pretrained的讲解和使用
  • golang编写UT:applyFunc和applyMethod区别
  • Oracle数据库服务器地址变更与监听配置修改完整指南
  • websocket结合promise的通信协议
  • 短期趋势动量策略思路
  • Thales靶机攻略
  • 鸿蒙移动应用开发--UI组件布局
  • 批量优化与压缩 PPT,减少 PPT 文件的大小
  • 【CSS3】01-初始CSS + 引入 + 选择器 + div盒子 + 字体修饰
  • Sar: 1靶场渗透
  • MoManipVLA:将视觉-语言-动作模型迁移到通用移动操作
  • 自然语言处理(13:RNN的实现)
  • 湖南慈利一村干部用AI生成通知并擅自发布,乡纪委立案
  • 幼儿园教师拍打孩子额头,新疆库尔勒教育局:涉事教师已被辞退
  • 俄乌直接谈判结束,乌称“毫无成果”
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 贵州省委军民融合发展委员会办公室副主任李刚接受审查调查
  • 华东政法与复旦上医签署合作框架协议,医学与法学如何交叉融合?