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

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

1. 绘制散点图:初探 Plotly

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

以下是一个示例代码:

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参数可以控制数据点的体积大小。

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 都是一个值得尝试的工具。

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

『Plotly实战指南』--绘图初体验的更多相关文章

  1. 『Numpy学习指南』Matplotlib绘图

    数据生成: import numpy as np import matplotlib.pyplot as plt func = np.poly1d(np.array([,,,])) func1 = f ...

  2. 『Numpy学习指南』排序&索引&抽取函数介绍

    排序: numpy.lexsort(): numpy.lexsort()是个排字典序函数,因为很有意思,感觉也蛮有用的,所以单独列出来讲一下: 强调一点,本函数只接受一个参数! import nump ...

  3. 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』

    作者:阿里云用户mr_wid ,z)NKt#   @I6A9do   如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV   RsfTUb)<   投票标题:  28.[阿里云 ...

  4. Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  5. Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验

    (一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...

  6. 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...

  7. dubbo实战之一:准备和初体验

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. Dubbo基础一之实战初体验

    本以为写这个小作文没什么难度的,可是好像并不是.前段时间重心放在驾考科目二,就想着小作文科二考过了再写也不是事,因为都实战过了.今天想着写却发现脑袋里啥都想不起来了,得翻项目和笔记回忆一下.所以还是那 ...

  9. Flume 实战(1) -- 初体验

    前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...

  10. iOS AR技术初体验,使用EasyAR示例程序的小白指南

    QQ前两天的传递火炬,是我第一次直接接触到AR.(虽然之前听同事说过,因为他喜欢玩游戏,PS.3DS等等都玩过,这个技术最开始就是从这里出现的).所以感觉很有趣,就想自己也试着搞一下玩玩...下面是我 ...

随机推荐

  1. Qt/C++地图雷达扫描/动态扇形区域/标记线实时移动/轮船货轮动态轨迹/雷达模拟/跟随地图缩放

    一.前言说明 地图雷达扫描的需求场景也不少,很多人的做法是直接搞个覆盖层widget,在widget上绘制雷达,优缺点很明显,优点是性能高,毕竟直接在widget上绘制性能明显比js中绘制要高,缺点是 ...

  2. 23种设计模式实战:重学Java设计模式

    23种设计模式实战PDF: 链接:https://pan.baidu.com/s/1XfjkBt19G7jZQfwk5wAV3w 提取码:1234

  3. Python中导入模块的import命令的语法

  4. 2022 年数据科学研究综述:重点介绍 ML、DL、NLP 等

    2022 年数据科学研究综述:重点介绍 ML.DL.NLP 等 当我们在 2022 年底临近时,我对许多著名研究小组完成的所有惊人工作感到振奋,他们将 AI.机器学习.深度学习和 NLP 的状态扩展到 ...

  5. .Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具

    想要开发AI产品的.Net程序员机会来了,这个项目应该好好研究. 虽然说大模型基本都有提供网络API,但肯定没有直接使用本地模型速度快. 最近微软官方新推出AI Dev Gallery开源项目,可以帮 ...

  6. DVWA靶场File Upload(文件上传) 漏洞所有级别通关教程及源码审计

    文件上传 文件上传漏洞是由于对上传文件的内.类型没有做严格的过滤.检查,使得攻击者可以通过上传木马文件获取服务器的webshell文件 low 上传一个php文件,上传成功,并且可以在WWW\DVWA ...

  7. .net core 3.x 发布单文件

    .翻译自:https://github.com/dotnet/designs/blob/master/accepted/2020/single-file/staging.md NET Core 3.0 ...

  8. Solution Set -「PTS Simus」“待天地再静默一秒”

    目录 03.11 A. 太阳照常升起 (exam) B. 丧钟为谁而鸣 (exam) C. 老人与海 (exam) 03.12 A. 「计蒜客 #42547」Yuuki and a problem B ...

  9. linux-杂项

    1.常用基础 防火墙systemctl status firewalldsystemctl stop firewalldsystemctl start firewalld find / -size + ...

  10. 从源码解析golang Timer定时器体系的来龙去脉

    大家好,我是思无邪,某go中厂开发工程师,也是OSPP2024的学生参与者! 如果你觉得我的文章有帮助,记得三连支持一下哦! 目前正在深入研究源码,与你们一起进步,共同攻克编程难关! 欢迎关注我的公众 ...