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/475545.html

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

相关文章

小程序20-样式:自适应尺寸单位 rpx

手机设备的宽度逐渐多元化,也就需要开发者开发过程中,去适配不同屏幕宽度的手机,为了解决屏幕适配问题,微信小程序推出了 rpx 单位 rpx:小程序新增的自适应单位,可以根据不同设备的屏幕宽度进行自适应缩放 …

TR3:Pytorch复现Transformer

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、实验目的 从整体上把握Transformer模型,明白它是个什么东西,可以干嘛读懂Transformer的复现代码 二、实验环境 语言环境&#xff1…

【蓝桥杯算法】Java的基础API

1. BigInteger 的使用 1.1. 判素数 package 模板;import java.math.BigInteger; import java.util.Scanner;public class 判素数 {static Scanner in new Scanner(System.in);public static void main(String[] args) {int q in.nextInt();while (q-- > 0) {BigInteger …

跟着问题学2——传统神经网络-多层感知机详解

相关文章 跟着问题学1——传统神经网络-线性回归及代码详解_深度学习中非线性变换代码-CSDN博客 问题 从线性回归到多层感知机 上节我们介绍了最基础的传统神经网络——线性回归,讲述了神经网络最基础的几个部分,模型创建,数据收集&#xf…

如何在Ubuntu当中利用CloudCompare软件进行点云配准拼接?

1.首先需要安装相应的cloudcompare软件,以下有两种方式:第一种直接在ubuntu的软件商店里搜索CloudCompare软件进行install,我这里已经安装完毕。 方式二:可以直接原码安装: github地址: https://github.co…

Vue3、Vite5、Primevue、Oxlint、Husky9 简单快速搭建最新的Web项目模板

Vue3、Vite5、Oxlint、Husky9 简单搭建最新的Web项目模板 特色进入正题创建基础模板配置API自动化导入配置组件自动化导入配置UnoCss接入Primevue接入VueRouter4配置项目全局环境变量 封装Axios接入Pinia状态管理接入Prerttier OXLint ESLint接入 husky lint-staged&#xf…

智能购物时代:AI在电商平台的革命性应用

在当今数字化时代,人工智能(AI)技术已成为推动电商行业发展的关键力量。AI技术的应用不仅改变了电商的运营模式,还极大地丰富了消费者的购物体验。随着技术的不断进步,AI在电商领域的应用越来越广泛,从个性…

uniapp vue3小程序报错Cannot read property ‘__route__‘ of undefined

在App.vue里有监听应用的生命周期 <script>// 只能在App.vue里监听应用的生命周期export default {onError: function(err) {console.log(AppOnError:, err); // 当 uni-app 报错时触发}} </script>在控制台打印里无意发现 Cannot read property ‘__route__‘ of …

昇思MindSpore第四课---GPT实现情感分类

1. GPT的概念 GPT 系列是 OpenAI 的一系列预训练模型&#xff0c;GPT 的全称是 Generative Pre-Trained Transformer&#xff0c;顾名思义&#xff0c;GPT 的目标是通过Transformer&#xff0c;使用预训练技术得到通用的语言模型。和BERT类似&#xff0c;GPT-1同样采取pre-trai…

解读缓存问题的技术旅程

目录 前言1. 问题的突发与初步猜测2. 缓存的“隐身术”3. 缓存策略的深层优化4. 反思与感悟结语 前言 那是一个普通的工作日&#xff0c;团队例行的早会刚刚结束&#xff0c;我正准备继续优化手头的模块时&#xff0c;突然收到了用户反馈。反馈的内容是部分数据显示异常&#…

WPS 加载项开发说明wpsjs

wpsjs几个常用的CMD命令&#xff1a; 1.打开cmd输入命令测试版本号 npm -v 2.首次安装nodejs&#xff0c;npm默认国外镜像&#xff0c;包下载较慢时&#xff0c;可切换到国内镜像 //下载速度较慢时可切换国内镜像 npm config set registry https://registry.npmmirror.com …

【深度学习】循环神经网络及文本生成模型构建

循环神经网络 词嵌入层 ​ 词嵌入层的作用就是将文本转换为向量。 ​ 词嵌入层首先会根据输入的词的数量构建一个词向量矩阵&#xff0c;例如: 我们有 100 个词&#xff0c;每个词希望转换成 128 维度的向量&#xff0c;那么构建的矩阵形状即为: 100*128&#xff0c;输入的每…

论文阅读:Uni-ISP Unifying the Learning of ISPs from Multiple Cameras

这是 ECCV 2024 的一篇文章&#xff0c;文章作者想建立一个统一的 ISP 模型&#xff0c;以实现在不同手机之间的自由切换。文章作者是香港中文大学的 xue tianfan 和 Gu jinwei 老师。 Abstract 现代端到端图像信号处理器&#xff08;ISPs&#xff09;能够学习从 RAW/XYZ 数据…

ROS2指令总结(跟随古月居教程学习)

​ 博主跟随古月居博客进行ROS2学习&#xff0c;对ROS2相关指令进行了总结&#xff0c;方便学习和回顾。 古月居ROS2博文链接&#xff1a;https://book.guyuehome.com/ 本文会持续进行更新&#xff0c;觉得有帮助的朋友可以点赞收藏。 1. ROS2安装命令 $ sudo apt update &am…

Qt不同类之间参数的传递

一、信号槽方式 1: 在需要发送信号的子类增加一个信号函数 void set_send(double lonx, double laty);sub.h sub.cpp emit set_send(lonx,laty);2: 在需要接收信号的类增加一个槽函数 main.h void set_rece(double lonx, double laty);main.cpp 1&#xff09;引入子类头文…

labview记录系统所用月数和天数

在做项目时会遇到采集系统的记录&#xff0c;比如一个项目测试要跑很久这个时候就需要在软件系统上显示项目运行了多少天&#xff0c;从开始测试开始一共用了多少年多少月。 年的话还好计算只需要把年份减掉就可以了&#xff0c;相比之下月份和天数就比较难确定&#xff0c;一…

机器翻译基础与模型 之一: 基于RNN的模型

一、机器翻译发展历程 基于规则的-->基于实例的-->基于统计方法的-->基于神经网络的 传统统计机器翻译把词序列看作离散空间里的由多个特征函数描述的点&#xff0c;类似 于 n-gram 语言模型&#xff0c;这类模型对数据稀疏问题非常敏感。神经机器翻译把文字序列表示…

WPF Prism框架

一、关于Prism框架 Prism.Core:【Prism.dll】实现MVVM的核心功能&#xff0c;属于一个与平台无关的项目 Prism.Wpf&#xff1a;【Prism.Wpf】包含了DialogService,Region,Module,Navigation,其他的一些WPF的功能 Prism.Unity:【Prism.Unity.Wpf】,IOC容器 Prism.Unity>Pr…

STM32F103系统时钟配置

时钟是单片机运行的基础&#xff0c;时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏&#xff0c;决定CPU速率&#xff0c;像人的心跳一样 只有有了心跳&#xff0c;人才能做其他的事情&#xff0c;而单片机有了时钟&#xff0c;才能够运行执行指令&#x…

2024年 Web3开发学习路线全指南

Web3是一个包含了很多领域的概念&#xff0c;不讨论币圈和链圈的划分&#xff0c;Web3包括有Defi、NFT、Game等基于区块链的Dapp应用的开发&#xff1b;也有VR、AR等追求视觉沉浸感的XR相关领域的开发&#xff1b;还有基于区块链底层架构或者协议的开发。 这篇文章给出的学习路…