『Plotly实战指南』--绘图初体验
今天,打算通过绘制一个简单的散点图,来开启我们 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()
运行后,你会看到一个交互式散点图,数据点根据x
和y
的值准确定位。
当你移动鼠标到散点上时,它们还会弹出身份标签,显示精确的坐标值。
Plotly
的交互性让数据探索变得更加灵活。
2. 数据点定位与呈现
在散点图中,数据点的位置由x
和y
值决定,代码中的字典data
存储了这些值。
Plotly
的px.scatter
函数读取数据后,将点绘制在图中。
Plotly
的可视化不仅依赖数据准确性,还通过样式增强可读性和美观性。
例如,title
参数为图表添加标题,交互性则让用户可以通过鼠标操作探索数据,如放大或查看数据点数值。
也就是说,使用Plotly
来绘图,我们的重点只要放在自己的数据上就可以了,不用花费精力在图形的样式和交互上。
3. Plotly的幕后工作
上面的代码很简单,开头通过import plotly.express as px
导入了Plotly
的express
模块。
express
是Plotly
的简洁易用的高层次接口,通过简单的函数调用即可生成图表。
绘制图表时,如果不需要深度的定制图表的显示,那么最常用的就是这个模块。
当我们简简单单导入import plotly.express as px
时,Plotly
其实已经做了:
- 加载核心引擎:导入
Plotly
的JavaScript
渲染引擎 - 建立翻译通道:创建
Python
与WebGL
之间的JSON
通信协议 - 初始化画布:准备好交互式图表的渲染容器
当我们通过px.scatter
绘制散点图时,它也自动帮我们处理了:
- 坐标轴的智能缩放
- 数据标签的自动生成
- 交互功能的默认配置
4. 绘图函数
使用Plotly
的绘图函数,关键是准备数据,比如上面示例中,数据以字典形式存储,x
和y
键对应横纵坐标。
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实战指南』--绘图初体验的更多相关文章
- 『Numpy学习指南』Matplotlib绘图
数据生成: import numpy as np import matplotlib.pyplot as plt func = np.poly1d(np.array([,,,])) func1 = f ...
- 『Numpy学习指南』排序&索引&抽取函数介绍
排序: numpy.lexsort(): numpy.lexsort()是个排字典序函数,因为很有意思,感觉也蛮有用的,所以单独列出来讲一下: 强调一点,本函数只接受一个参数! import nump ...
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...
- Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验
(一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮
原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...
- dubbo实战之一:准备和初体验
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Dubbo基础一之实战初体验
本以为写这个小作文没什么难度的,可是好像并不是.前段时间重心放在驾考科目二,就想着小作文科二考过了再写也不是事,因为都实战过了.今天想着写却发现脑袋里啥都想不起来了,得翻项目和笔记回忆一下.所以还是那 ...
- Flume 实战(1) -- 初体验
前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...
- iOS AR技术初体验,使用EasyAR示例程序的小白指南
QQ前两天的传递火炬,是我第一次直接接触到AR.(虽然之前听同事说过,因为他喜欢玩游戏,PS.3DS等等都玩过,这个技术最开始就是从这里出现的).所以感觉很有趣,就想自己也试着搞一下玩玩...下面是我 ...
随机推荐
- Qt/C++地图雷达扫描/动态扇形区域/标记线实时移动/轮船货轮动态轨迹/雷达模拟/跟随地图缩放
一.前言说明 地图雷达扫描的需求场景也不少,很多人的做法是直接搞个覆盖层widget,在widget上绘制雷达,优缺点很明显,优点是性能高,毕竟直接在widget上绘制性能明显比js中绘制要高,缺点是 ...
- 23种设计模式实战:重学Java设计模式
23种设计模式实战PDF: 链接:https://pan.baidu.com/s/1XfjkBt19G7jZQfwk5wAV3w 提取码:1234
- Python中导入模块的import命令的语法
- 2022 年数据科学研究综述:重点介绍 ML、DL、NLP 等
2022 年数据科学研究综述:重点介绍 ML.DL.NLP 等 当我们在 2022 年底临近时,我对许多著名研究小组完成的所有惊人工作感到振奋,他们将 AI.机器学习.深度学习和 NLP 的状态扩展到 ...
- .Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具
想要开发AI产品的.Net程序员机会来了,这个项目应该好好研究. 虽然说大模型基本都有提供网络API,但肯定没有直接使用本地模型速度快. 最近微软官方新推出AI Dev Gallery开源项目,可以帮 ...
- DVWA靶场File Upload(文件上传) 漏洞所有级别通关教程及源码审计
文件上传 文件上传漏洞是由于对上传文件的内.类型没有做严格的过滤.检查,使得攻击者可以通过上传木马文件获取服务器的webshell文件 low 上传一个php文件,上传成功,并且可以在WWW\DVWA ...
- .net core 3.x 发布单文件
.翻译自:https://github.com/dotnet/designs/blob/master/accepted/2020/single-file/staging.md NET Core 3.0 ...
- Solution Set -「PTS Simus」“待天地再静默一秒”
目录 03.11 A. 太阳照常升起 (exam) B. 丧钟为谁而鸣 (exam) C. 老人与海 (exam) 03.12 A. 「计蒜客 #42547」Yuuki and a problem B ...
- linux-杂项
1.常用基础 防火墙systemctl status firewalldsystemctl stop firewalldsystemctl start firewalld find / -size + ...
- 从源码解析golang Timer定时器体系的来龙去脉
大家好,我是思无邪,某go中厂开发工程师,也是OSPP2024的学生参与者! 如果你觉得我的文章有帮助,记得三连支持一下哦! 目前正在深入研究源码,与你们一起进步,共同攻克编程难关! 欢迎关注我的公众 ...