今天,打算通过绘制一个简单的散点图,来开启我们 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. Go channel 原理

    作用 Go 语言的 channel 是一种 goroutine 之间的通信方式,它可以用来传递数据,也可以用来同步 goroutine 的执行. chan 是 goroutine 之间的通信桥梁,可以 ...

  2. Qt编写视频监控系统78-视频推流到流媒体服务器

    一.前言 视频推流作为独立的模块,目前并没有集成到视频监控系统中,目前是可以搭配监控系统一起使用,一般是将添加好的摄像头通道视频流地址打开后,读取视频流重新推到流媒体服务器,然后第三方可以从流媒体服务 ...

  3. Qt编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)

    一.功能特点 同时支持 qcamera.ffmpeg.v4l2 三种内核解析本地摄像头. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出. 支持自动搜索和指定设备 ...

  4. GitHub Workflow 和 Action 的一些注意事项

    GitHub 的 workflow 和 action 存在一些注意事项,总结如下,以供参考 Workflow on.issues.types 如果需要判断 label,不需要指定 opened,只需要 ...

  5. 即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第32 期. [- 1 -] IM开发干货分享:如何优雅的实现大量离线消息的可靠投递 [链接]  ...

  6. WPF 记录鼠标、触摸多设备混合输入场景问题

    本文记录在WPF应用中鼠标.触摸混合输入,鼠标事件抬起时不会有MouseUp事件触发的问题. 事件输入我们都知道有3类:鼠标.触摸.触笔,鼠标是windows系统出来就有的事件,后面加了触笔.触摸. ...

  7. Verilog5_有限状态机

    一.有限状态机(Finite State Machine, FSM)基本概念 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路:         其状态只能在同一时钟跳变沿从一个状态转向另一个状态: ...

  8. Python学习(六)——配套《PyTorch深度学习实战》

    1. NumPy介绍 这张图片介绍了Python中两个非常重要的科学计算库:NumPy和SciPy,以及它们的核心功能和特性. NumPy NumPy(Numerical Python)是一个开源的P ...

  9. 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-10- 标签页(tab)操作 - 上篇 (详细教程)

    1.简介 本来按照计划这一系列的文章应该介绍Context和Page两个内容的,但是宏哥看了官方文档和查找资料发现其实和宏哥在Python+Playwright系列文章中的大同小异,差不了多少,再在这 ...

  10. 夜莺监控支持 ES 日志告警了

    夜莺项目( https://github.com/ccfos/nightingale )发布了 v8.0.0-beta.3 版本,这个版本主要是支持了 ES 日志告警,下面给大家介绍一下. 新版本下载 ...