『Plotly实战指南』--绘图初体验

今天,打算通过绘制一个简单的散点图,来开启我们 Plotly 绘图的初次尝试。

本文目的不是介绍如何绘制散点图,而是通过散点图来介绍Plotly 绘图的基础步骤。

1. 绘制散点图:初探 Plotly

散点图是展示变量关系的基础图表,在Plotly中,绘制散点图非常简单。

以下是一个示例代码:

python 复制代码
import plotly.express as px

# 准备数据
data = {
    "x": [1, 2, 3, 4, 5],
    "y": [2, 3, 5, 7, 11]
}

# 绘制散点图
fig = px.scatter(data, x="x", y="y", title="简单的散点图")
fig.show()

运行后,你会看到一个交互式散点图,数据点根据xy的值准确定位。

当你移动鼠标到散点上时,它们还会弹出身份标签,显示精确的坐标值。

Plotly的交互性让数据探索变得更加灵活。

2. 数据点定位与呈现

在散点图中,数据点的位置由xy值决定,代码中的字典data存储了这些值。

Plotlypx.scatter函数读取数据后,将点绘制在图中。

Plotly 的可视化不仅依赖数据准确性,还通过样式增强可读性和美观性。

例如,title参数为图表添加标题,交互性则让用户可以通过鼠标操作探索数据,如放大或查看数据点数值。

也就是说,使用Plotly来绘图,我们的重点只要放在自己的数据上就可以了,不用花费精力在图形的样式和交互上。

3. Plotly的幕后工作

上面的代码很简单,开头通过import plotly.express as px导入了Plotlyexpress模块。

expressPlotly的简洁易用的高层次接口,通过简单的函数调用即可生成图表。

绘制图表时,如果不需要深度的定制图表的显示,那么最常用的就是这个模块。

当我们简简单单导入import plotly.express as px时,Plotly其实已经做了:

  1. 加载核心引擎 :导入PlotlyJavaScript渲染引擎
  2. 建立翻译通道 :创建PythonWebGL之间的JSON通信协议
  3. 初始化画布:准备好交互式图表的渲染容器

当我们通过px.scatter绘制散点图时,它也自动帮我们处理了:

  1. 坐标轴的智能缩放
  2. 数据标签的自动生成
  3. 交互功能的默认配置

4. 绘图函数

使用Plotly的绘图函数,关键是准备数据,比如上面示例中,数据以字典形式存储,xy键对应横纵坐标。

px.scatter函数通过这些键读取数据并绘制,当绘制不同的图形时(比如折线图,柱状图等等),重点关注不同的函数中,对数据格式的要求。

除了数据点,Plotly也提供其他丰富的参数选项,如颜色、大小、形状等,这些参数的灵活使用能让图表更符合需求。

比如上面的px.scatter函数,通过参数color可以设置不同点的颜色,通过size参数可以控制数据点的体积大小。

python 复制代码
import pandas as pd

df = pd.DataFrame(
    {
        "x轴": [1, 3, 5],
        "y轴": [2, 4, 6],
        "分类": ["A", "B", "A"],
    }
)

px.scatter(
    df,
    x="x轴",
    y="y轴",
    color="分类",
    size="y轴",
    hover_data=["x轴", "y轴"],
)

上面的示例,通过Y轴 的数值来控制点的大小,通过分类的值来控制颜色的不同。

5. 总结

通过这次Plotly绘图的初次尝试,我们成功绘制了散点图,并深入了解了其工作原理和使用方法。

从数据点定位到可视化呈现,从导入库的原理到绘图参数的设置,Plotly 都展现了强大的功能和易用性。

无论是数据分析人员还是爱好者,Plotly 都是一个值得尝试的工具。

后续的文章将继续探索更多图表类型和高级功能,让数据呈现更加完美。

相关推荐
wang_yb1 天前
manim边学边做--移动相机的场景类
databook·manim
wang_yb2 天前
『Plotly实战指南』--架构与设计理念
plotly·databook
wang_yb5 天前
manim边学边做--线性变换的场景类
databook·manim
wang_yb7 天前
manim边学边做--向量相关的场景类
databook·manim
源代码杀手7 天前
利用阿里云Atlas地区选择器与Plotly.js实现数据可视化与交互
javascript·阿里云·plotly
wang_yb8 天前
manim边学边做--局部缩放的场景类
databook·manim
wang_yb9 天前
『Python底层原理』--GIL对多线程的影响
python·databook
wang_yb10 天前
『Python底层原理』--异步机制(async/await)
python·databook
wang_yb11 天前
manim边学边做--场景Scene简介
databook·manim