Python 绘图工具详解:使用 Matplotlib、Seaborn 和 Pyecharts 绘制散点图

目录

  • 数据可视化
    • 1.使用 matplotlib 库
        • matplotlib 库
    • 2 .使用 seaborn 库
        • seaborn 库
    • 3 .使用 pyecharts库
        • pyecharts库
      • 注意
        • 1. 确保安装了所有必要的库
        • 2. 检查Jupyter Notebook的版本
        • 3. 使用`render()`方法保存为HTML文件
        • 4. 使用`IFrame`在Notebook中显示HTML文件
        • 5. 检查是否有其他输出干扰
        • 6. 重启Jupyter Notebook
  • 比较三种库的特点
    • 选择建议
      • 目标
  • 总结

在这里插入图片描述

数据可视化

1.使用 matplotlib 库

import matplotlib.pyplot as plt

# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 使用matplotlib绘制散点图
plt.scatter(x, y, label='Data Points', color='blue', marker='o')

# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Scatter Plot')

# 添加图例和网格
plt.legend()
plt.grid(True)

# 显示图形
plt.show()

在这里插入图片描述

matplotlib 库
  • 导入库import matplotlib.pyplot as plt
  • 创建数据x = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]
  • 绘制散点图plt.scatter(x, y, label='Data Points', color='blue', marker='o')
  • 添加标签和标题plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.title('Scatter Plot')
  • 添加图例和网格plt.legend()plt.grid(True)
  • 显示图形plt.show()

2 .使用 seaborn 库

import seaborn as sns
import matplotlib.pyplot as plt

# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 使用Seaborn绘制散点图
sns.scatterplot(x=x, y=y, label='Data Points')

# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Scatter Plot')

# 添加图例和网格
plt.legend()
plt.grid(True)

# 显示图形
plt.show()

在这里插入图片描述

seaborn 库
  • 导入库import seaborn as snsimport matplotlib.pyplot as plt
  • 创建数据x = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]
  • 绘制散点图sns.scatterplot(x=x, y=y, label='Data Points')
  • 添加标签和标题plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.title('Scatter Plot')
  • 添加图例和网格plt.legend()plt.grid(True)
  • 显示图形plt.show()

3 .使用 pyecharts库

from pyecharts.charts import Scatter
from pyecharts import options as opts

# 创建数据
data = [(1, 2), (2, 3), (3, 5), (4, 7), (5, 11)]

# 创建散点图对象
scatter = (
    Scatter()
    .add_xaxis([x for x, y in data])
    .add_yaxis("Data Points", [y for x, y in data])
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Scatter Plot"),
        xaxis_opts=opts.AxisOpts(name="X-axis"),
        yaxis_opts=opts.AxisOpts(name="Y-axis"),
    )
)

# 渲染图表
# 如果在Jupyter Notebook中运行,使用render_notebook()
scatter.render_notebook()

# 如果在普通Python脚本中运行,使用render()保存为HTML文件
# scatter.render("scatter_plot.html")
pyecharts库
  • 导入库from pyecharts.charts import Scatterfrom pyecharts import options as opts
  • 创建数据data = [(1, 2), (2, 3), (3, 5), (4, 7), (5, 11)]
  • 创建散点图对象scatter = Scatter().add_xaxis([x for x, y in data]).add_yaxis("Data Points", [y for x, y in data])
  • 设置系列选项set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  • 设置全局选项set_global_opts(title_opts=opts.TitleOpts(title="Scatter Plot"), xaxis_opts=opts.AxisOpts(name="X-axis"), yaxis_opts=opts.AxisOpts(name="Y-axis"))
  • 渲染图表:在Jupyter Notebook中使用render_notebook(),在普通Python脚本中使用render("scatter_plot.html")

注意

如果你在Jupyter Notebook中运行这段代码,但是图表没有显示出来,可能是因为render_notebook()方法没有被正确执行,或者你的环境配置有问题。下面是一些可能的解决方案:

1. 确保安装了所有必要的库

首先,确保已经安装了pyecharts及其相关依赖。可以使用以下命令来安装:

pip install pyecharts
2. 检查Jupyter Notebook的版本

确保使用的Jupyter Notebook版本支持render_notebook()方法。通常情况下,较新版本的Jupyter Notebook应该没有问题。

3. 使用render()方法保存为HTML文件

如果render_notebook()方法不起作用,可以尝试将图表保存为HTML文件,然后手动打开这个文件查看图表。

# 渲染图表并保存为HTML文件
scatter.render("scatter_plot.html")

保存后,你可以在文件浏览器中找到scatter_plot.html文件并双击打开它,查看图表。

4. 使用IFrame在Notebook中显示HTML文件

如果你希望在Jupyter Notebook中直接显示HTML文件,可以使用IPython.display.IFrame来实现。

from IPython.display import IFrame

# 渲染图表并保存为HTML文件
scatter.render("scatter_plot.html")

# 在Notebook中显示HTML文件
IFrame('scatter_plot.html', width=800, height=600)
5. 检查是否有其他输出干扰

有时候,Jupyter Notebook中的其他输出可能会干扰图表的显示。确保在执行绘图代码之前没有其他输出。

6. 重启Jupyter Notebook

如果以上方法都不奏效,可以尝试重启Jupyter Notebook服务器,有时这可以解决一些临时性的问题。


比较三种库的特点

特点适用场景
matplotlib基础库,支持自定义,静态图表科研论文,数据分析报告
seaborn基于 matplotlib,样式美观统计分析,探索性数据分析
pyecharts交互性强,适合网页展示数据展示,交互式仪表板

选择建议

  • 如果需要在科研或数据分析中生成静态图表,matplotlib 是基础且可靠的选择。
  • 需要更多美观效果和便捷的统计分析时,seaborn 提供了友好的界面。
  • 若要在网页中展示交互式图表,pyecharts 能生成包含交互功能的 HTML 文件,非常适合网络发布。

目标

  • 学习和实践:通过实际操作,掌握使用 matplotlibseabornpyecharts 绘制散点图的方法。
  • 比较不同库的特点:了解每个库的优缺点,选择最适合具体需求的工具。
  • 数据可视化:通过散点图展示数据之间的关系,帮助更好地理解和解释数据。

总结

嘿,数据可视化这事儿暂时要告一段落啦,不过以后有机会的话,咱还能再写写关于数据可视化的东西。😎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917946.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】vector 类模拟实现:探索动态数组的奥秘

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 如果你对string,vector还存在疑惑,欢迎阅读我之前的作品 : 之前文章🔥&#x1f52…

【ubuntu18.04】vm虚拟机复制粘贴键不能用-最后无奈换版本

我是ubuntu16版本的 之前费老大劲安装的vmware tools结果不能用 我又卸载掉,安装了open-vm-tools 首先删除VMware tools sudo vmware-uninstall-tools.pl sudo rm -rf /usr/lib/vmware-tools sudo apt-get autoremove open-vm-tools --purge再下载open-vm-tools s…

使用原生 OpenTelemetry 解锁各种可能性:优先考虑可靠性,而不是专有限制

作者:来自 Elastic Bahubali Shetti•Miguel Luna Elastic 现在支持使用 OTel Operator 在 Kubernetes 上部署和管理 Elastic Distributions of OpenTelemetry (EDOT)。SRE 现在可以访问开箱即用的配置和仪表板,这些配置和仪表板旨在通过 Elastic Observ…

【freertos】FreeRTOS信号量的介绍及使用

FreeRTOS信号量 一、概述二、PV原语三、函数接口1.创建一个计数信号量2.删除一个信号量3.信号量释放4.在中断释放信号量5.获取一个信号量,可以是二值信号量、计数信号量、互斥量。6.在中断获取一个信号量,可以是二值信号量、计数信号量7.创建一个二值信号…

【生物服务器】数据分析//论文润色/组学技术服务 、表观组分析、互作组分析、遗传转化实验、生物医学

DNA亲和纯化测序(DAP-seq)和组蛋白甲基化修饰是表观遗传学研究中两个重要的技术手段,它们在揭示基因表达调控机制和染色质结构动态变化中发挥着关键作用。然而,在实践过程中,这两种技术也存在一些痛点和挑战。 DNA亲和…

丹摩征文活动| 摩智云端深度解析:Faster R-CNN模型的训练与测试实战指南

目录 丹摩简介 文章前言Faster R-CNN的简介Faster RCNN的训练与测试提前准备1.1 mobaxterm(远程连接服务器)1.2 本文的源码下载 目标检测模型 Faster-Rcnn2.1云服务器平台 数据上传内置JupyterLab的使用本地连接使用DAMODEL实例获取实例的SSH访问信息通过…

二叉搜索树介绍

⼆叉搜索树 二叉搜索树的概念二叉搜索树的性能分析查找性能插入性能删除性能 二叉搜索树的插入二叉搜索树的查找二叉搜索树的删除⼆叉搜索树的实现代码测试代码 二叉搜索树key和key/value使⽤场景key搜索场景key/value搜索场景key/value⼆叉搜索树代码实现测试代码 二叉搜索树的…

7.揭秘C语言输入输出内幕:printf与scanf的深度剖析

揭秘C语言输入输出内幕:printf与scanf的深度剖析 C语言往期系列文章目录 往期回顾: VS 2022 社区版C语言的安装教程,不要再卡在下载0B/s啦C语言入门:解锁基础概念,动手实现首个C程序C语言概念之旅:解锁关…

5.4.2-1 编写Java程序在HDFS上创建文件

本次实战涉及使用Java操作Hadoop HDFS,包括创建文件、判断文件存在性及异常处理。通过手动添加依赖、启动HDFS服务,成功在HDFS上创建和检查文件。进一步探索了文件操作的最佳实践,如检查文件存在性以避免重复创建,以及处理HDFS安全…

RabbitMQ教程:路由(Routing)(四)

文章目录 RabbitMQ教程:路由(Routing)(四)一、引言二、基本概念2.1 路由与绑定2.2 Direct交换机2.3 多绑定2.4 发送日志2.5 订阅 三、整合代码3.1 EmitLogDirectApp.cs3.2 ReceiveLogsDirectApp.cs3.3 推送所有和接收e…

智云-一个抓取web流量的轻量级蜜罐v1.5

智云-一个抓取web流量的轻量级蜜罐v1.5 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN 新增功能-自定义漏洞信息 可通过正则来添加相关路由以及响应来伪造 nacos的版本响应如下 日流量态势 月流量态势 抓取流量效果

21.UE5游戏存档,读档,函数库

2-23 游戏存档、读档、函数库_哔哩哔哩_bilibili 目录 1.存档蓝图 2.函数库 2.1保存存档 2.2读取存档: 3.加载游戏,保存游戏 3.1游戏实例对象 3.2 加载游戏 3.3保存游戏 这一节的内容较为错综复杂,中间没有运行程序进行阶段性成果的验…

实验5:网络设备发现、管理和维护

实验5:网络设备发现、管理和维护 实验目的及要求: 通过实验,掌握Cisco 路由器和交换机的IOS配置管理。自动从NTP服务器获取时间信息。能够利用TFTP服务器实现路由器和交换机配置文件的备份和恢复。同时验证CDP协议和LLDP协议的网络参数。完…

vue 项目使用 nginx 部署

前言 记录下使用element-admin-template 改造项目踩过的坑及打包部署过程 一、根据权限增加动态路由不生效 原因是Sidebar中路由取的 this.$router.options.routes,需要在计算路由 permission.js 增加如下代码 // generate accessible routes map based on roles const acce…

DataWorks on EMR StarRocks,打造标准湖仓新范式

在大数据领域,数据仓库和实时分析系统扮演着至关重要的角色。DataWorks 基于大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台,为用户带来智能化的数据开发和分析体验。而阿里云提供的 EMR Serverless St…

七、利用CSS和多媒体美化页面的习题

题目一&#xff1a; 利用CSS技术&#xff0c;结合表格和列表&#xff0c;制作并美化 “ 翡翠阁 ”页面。运行效果如下 运行效果&#xff1a; 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>翡翠阁</title>&…

游戏引擎学习第15天

视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出&#xff08;IO&#xff09;操作的讨论。主要分为两类&#xff1a; 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源&#xff0c;例如音乐、音效、美术资源&#xff08;如 3D 模型和…

【动手学深度学习Pytorch】2. Softmax回归代码

零实现 导入所需要的包&#xff1a; import torch from IPython import display from d2l import torch as d2l定义数据集参数、模型参数&#xff1a; batch_size 256 # 每次随机读取256张图片 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size) # 将展平每个…

51单片机基础05 实时时钟-思路及代码参考2、3

目录 一、思路二 1、原理图 2、代码 二、思路三 1、原理图 2、代码 一、思路二 所有设定功能相关的操作均在矩阵键盘进行实现&#xff0c;并在定时器中扫描、计数等 1、原理图 2、代码 #include <AT89X52.h> //调用51单片机的头文件 //------------------…

Notepad++的完美替代

由于Notepad的作者曾发表过可能在开发者代码中植入恶意软件的言论&#xff0c;他备受指责。在此&#xff0c;我向大家推荐一个Notepad的完美替代品——NotepadNext和Notepad--。 1、NotepadNext NotepadNext的特点&#xff1a; 1、跨平台兼容性 NotepadNext基于Electron或Qt…