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 绘制散点图的方法。
  • 比较不同库的特点:了解每个库的优缺点,选择最适合具体需求的工具。
  • 数据可视化:通过散点图展示数据之间的关系,帮助更好地理解和解释数据。

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机集群新年祝福表演技术原理详解

无人机集群新年祝福表演技术是一项集飞行控制技术、智能协调和精密控制于一体的高科技表演形式。其技术原理主要涉及无人机硬件设备、软件系统以及表演协调等多个方面。以下是对该技术原理的详细解析: 一、无人机硬件设备 无人机集群表演的核心是无人机本身&#x…

贪吃蛇实现

1.资料来源 https://learn.microsoft.com/zh-cn/windows/console/getstdhandle 2.前言 简介 贪吃蛇是久负盛名的游戏,和俄罗斯方块、扫雷等游戏位列于经典游戏的行列。 《贪食蛇》中玩家控制一条不断移动的蛇,在屏幕上吃掉出现的食物。每吃掉一个食物…

计算机毕业设计Python动漫推荐系统 漫画推荐系统 动漫视频推荐系统 机器学习 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

MyBatis-Plus笔记-快速入门

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

《OpenCV》——图像透视转换

图像透视转换简介 在 OpenCV 里,图像透视转换属于重要的几何变换,也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点:要在源图像和目标图像上分别找出至少四个对应的点。这些对…

克隆OpenAI(基于openai API和streamlit)

utils.py: from langchain_openai import ChatOpenAI from langchain.memory import ConversationBufferMemory from langchain.chains import ConversationChain import osdef get_chat_response(api_key,prompt,memory): # memory不能是函数的内部局部变量&…

用 HTML、CSS 和 JavaScript 实现抽奖转盘效果

顺序抽奖 前言 这段代码实现了一个简单的抽奖转盘效果。页面上有一个九宫格布局的抽奖区域,周围八个格子分别放置了不同的奖品名称,中间是一个 “开始抽奖” 的按钮。点击按钮后,抽奖区域的格子会快速滚动,颜色不断变化&#xf…

【Linux】使用管道实现一个简易版本的进程池

文章目录 使用管道实现一个简易版本的进程池流程图代码makefileTask.hppProcessPool.cc 程序流程: 使用管道实现一个简易版本的进程池 流程图 代码 makefile ProcessPool:ProcessPool.ccg -o $ $^ -g -stdc11 .PHONY:clean clean:rm -f ProcessPoolTask.hpp #pr…

Elasticsearch的索引生命周期管理

目录 说明零、参考一、ILM的基本概念二、ILM的实践步骤Elasticsearch ILM策略中的“最小年龄”是如何计算的?如何监控和调整Elasticsearch ILM策略的性能? 1. **监控性能**使用/_cat/thread_pool API基本请求格式请求特定线程池的信息响应内容 2. **调整…

MQTT知识

MQTT协议 MQTT 是一种基于发布/订阅模式的轻量级消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用而设计,可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、智慧城市、远程医疗、…

LabVIEW如何高频采集温度数据?

在LabVIEW中进行高频温度数据采集时,选择合适的传感器(如热电偶或热电阻)和采集硬件是关键。下面是一些建议,帮助实现高效的温度数据采集: 1. 传感器选择: 热电偶(Thermocouple)&am…

前端 | 深入理解Promise

1. 引言 JavaScript 是一种单线程语言,这意味着它一次仅能执行一个任务。为了处理异步操作,JavaScript 提供了回调函数,但是随着项目处理并发任务的增加,回调地狱 (Callback Hell) 使异步代码很难维护。为此,ES6带来了…

gesp(C++六级)(10)洛谷:P10722:[GESP202406 六级] 二叉树

gesp(C六级)(10)洛谷:P10722:[GESP202406 六级] 二叉树 题目描述 小杨有⼀棵包含 n n n 个节点的二叉树,且根节点的编号为 1 1 1。这棵二叉树任意⼀个节点要么是白色,要么是黑色。之后小杨会对这棵二叉树…

【UE】 APlayerState

APlayerState 定义和功能 APlayerState用于保存关于游戏玩家状态的信息,例如得分、玩家名称和其他统计数据。这些信息通常在多人游戏中被用来持续跟踪玩家的表现。设计理念 APlayerState的目的是提供一个存储和传输玩家特定信息的方法,这样即使玩家的控…

如何用微信小程序写春联

​ 生活没有模板,只需心灯一盏。 如果笑能让你释然,那就开怀一笑;如果哭能让你减压,那就让泪水流下来。如果沉默是金,那就不用解释;如果放下能更好地前行,就别再扛着。 一、引入 Vant UI 1、通过 npm 安装 npm i @vant/weapp -S --production​​ 2、修改 app.json …

C# Winform enter键怎么去关联button

1.关联按钮上的Key事件按钮上的keypress,keydown,keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…

FPGA 使用 CLOCK_DEDICATED_ROUTE 约束

使用 CLOCK_DEDICATED_ROUTE 约束 CLOCK_DEDICATED_ROUTE 约束通常在从一个时钟区域中的时钟缓存驱动到另一个时钟区域中的 MMCM 或 PLL 时使 用。默认情况下, CLOCK_DEDICATED_ROUTE 约束设置为 TRUE ,并且缓存 /MMCM 或 PLL 对必须布局在相同…

Ollama+OpenWebUI部署本地大模型

OllamaOpenWebUI部署本地大模型 前言 Ollama是一个强大且易于使用的本地大模型推理框架,它专注于简化和优化大型语言模型(LLMs)在本地环境中的部署、管理和推理工作流。可以将Ollama理解为一个大模型推理框架的后端服务。 Ollama Ollama安…

SpringBoot 整合 SpringMVC:SpringMVC的注解管理

分类&#xff1a; 中央转发器(DispatcherServlet)控制器视图解析器静态资源访问消息转化器格式化静态资源管理 中央转发器&#xff1a; 中央转发器被 SpringBoot 自动接管&#xff0c;不需要我们在 web.xml 中配置&#xff1a; <servlet><servlet-name>chapter2&l…

Zemax 中带有体素探测器的激光谐振腔

激光谐振腔是激光系统的基本组成部分&#xff0c;在光的放大和相干激光辐射的产生中起着至关重要的作用。 激光腔由两个放置在光学谐振器两端的镜子组成。一个镜子反射率高&#xff08;后镜&#xff09;&#xff0c;而另一个镜子部分透明&#xff08;输出耦合器&#xff09;。…