Python 数据可视化

ops/2025/3/14 17:40:55/

Python 提供了多种强大的库用于数据可视化,常用的库包括 MatplotlibSeabornPlotlyPandasBokeh 等。以下是这些库的简介和一些常见的数据可视化示例。


1. Matplotlib

Matplotlib 是 Python 中最常用的绘图库,提供了类似 MATLAB 的绘图接口。

示例:绘制折线图

python">import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 40]# 创建图形
plt.plot(x, y, marker='o', linestyle='-', color='b', label='Line Chart')# 添加标题和标签
plt.title("Simple Line Chart")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")# 显示图例
plt.legend()# 显示图形
plt.show()

示例:绘制柱状图

python">import matplotlib.pyplot as plt# 数据
categories = ['A', 'B', 'C', 'D']
values = [15, 25, 30, 20]# 创建柱状图
plt.bar(categories, values, color='skyblue')# 添加标题和标签
plt.title("Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")# 显示图形
plt.show()

2. Seaborn

Seaborn 是基于 Matplotlib 的高级绘图库,提供了更美观的默认样式和更简单的接口。

示例:绘制散点图

python">import seaborn as sns
import pandas as pd# 数据
data = pd.DataFrame({'X': [1, 2, 3, 4, 5],'Y': [10, 20, 25, 30, 40]
})# 绘制散点图
sns.scatterplot(x='X', y='Y', data=data)# 显示图形
plt.show()

示例:绘制热力图

python">import seaborn as sns
import numpy as np# 数据
data = np.random.rand(5, 5)# 绘制热力图
sns.heatmap(data, annot=True, cmap='coolwarm')# 显示图形
plt.show()

3. Plotly

Plotly 是一个交互式绘图库,支持生成动态和交互式图表。

示例:绘制交互式折线图

python">import plotly.express as px
import pandas as pd# 数据
df = pd.DataFrame({'X': [1, 2, 3, 4, 5],'Y': [10, 20, 25, 30, 40]
})# 绘制折线图
fig = px.line(df, x='X', y='Y', title="Interactive Line Chart")# 显示图形
fig.show()

示例:绘制交互式散点图

python">import plotly.express as px
import pandas as pd# 数据
df = pd.DataFrame({'X': [1, 2, 3, 4, 5],'Y': [10, 20, 25, 30, 40],'Category': ['A', 'B', 'A', 'B', 'A']
})# 绘制散点图
fig = px.scatter(df, x='X', y='Y', color='Category', title="Interactive Scatter Plot")# 显示图形
fig.show()

4. Pandas

Pandas 内置了基于 Matplotlib 的简单绘图功能,适合快速可视化。

示例:绘制直方图

python">import pandas as pd
import numpy as np# 数据
data = pd.Series(np.random.randn(1000))# 绘制直方图
data.hist(bins=30, color='skyblue')# 显示图形
plt.show()

5. Bokeh

Bokeh 是一个用于创建交互式图表的库,特别适合在网页中展示。

示例:绘制交互式折线图

python">from bokeh.plotting import figure, show
from bokeh.io import output_notebook# 启用 Notebook 输出
output_notebook()# 数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 40]# 创建图形
p = figure(title="Interactive Line Chart", x_axis_label='X', y_axis_label='Y')
p.line(x, y, legend_label="Line", line_width=2)# 显示图形
show(p)

6. 综合示例:使用多种库绘制图形

以下是一个综合示例,展示如何使用 Matplotlib、Seaborn 和 Plotly 绘制同一组数据的不同图形。

python">import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import pandas as pd# 数据
data = pd.DataFrame({'X': [1, 2, 3, 4, 5],'Y': [10, 20, 25, 30, 40]
})# Matplotlib 折线图
plt.plot(data['X'], data['Y'], marker='o')
plt.title("Matplotlib Line Chart")
plt.show()# Seaborn 散点图
sns.scatterplot(x='X', y='Y', data=data)
plt.title("Seaborn Scatter Plot")
plt.show()# Plotly 交互式折线图
fig = px.line(data, x='X', y='Y', title="Plotly Interactive Line Chart")
fig.show()

总结

  • Matplotlib:适合基础绘图,功能强大但代码稍复杂。
  • Seaborn:基于 Matplotlib,提供更美观的默认样式和高级图表。
  • Plotly:适合创建交互式图表,支持动态展示。
  • Pandas:适合快速可视化,内置简单绘图功能。
  • Bokeh:适合创建交互式图表,特别适合网页展示。

根据你的需求选择合适的库进行数据可视化


http://www.ppmy.cn/ops/165721.html

相关文章

Centos 7 在线磁盘扩容

lsblk df -Th 查看磁盘信息 df -Th 1 查看物理卷 pvs 或者 pvdisplay 或者 pvscan [rootoracledb Thu Mar 13 13:53:44 /]# pvs PV VG Fmt Attr PSize PFree /dev/sda3 centos lvm2 a-- <237.28g 0 /dev/sdb1 centos lvm2 a-- <1…

小米路由器SSH下安装DDNS-GO

文章目录 前言一、下载&#xff06;安装DDNS-GO二、配置ddns-go设置开机启动 前言 什么是DDNS&#xff1f; DDNS&#xff08;Dynamic Domain Name Server&#xff09;是动态域名服务的缩写。 目前路由器拨号上网获得的多半都是动态IP&#xff0c;DDNS可以将路由器变化的外网I…

双周报Vol.67: 模式匹配支持守卫、LLVM 后端发布、支持 Attribute 语法...多项核心技术更新!

2025-03-10 语言更新 模式匹配支持守卫&#xff08;Pattern Guard&#xff09; 模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式&#xff0c;并且模式守卫为真的情况下才会执行。如果模式守卫为假&#xff0c;则会…

自动同步多服务器下SQL脚本3.0

由于上一版发现数据库【MySQL】不支持DML事务回滚&#xff0c;该迭代主要是去兼容这种问题。 数据表新增一个completed字段&#xff0c;用来表示当前版本下同步成功的个数。 数据表 CREATE TABLE auto_sql_version (id int NOT NULL AUTO_INCREMENT,version varchar(20) CH…

⚡️Jolt -- 通过JSON配置来处理复杂数据转换的工具

简介&#xff1a;一个能够通过JSON配置&#xff08;特定的语法&#xff09;来处理复杂数据转换的工具。 比如将API响应转换为内部系统所需的格式&#xff0c;或者处理来自不同来源的数据结构差异。例如&#xff0c;将嵌套的JSON结构扁平化&#xff0c;或者重命名字段&#xff0…

vue3 中使用 Recorder 实现录音并上传,并用Go语言调取讯飞识别录音(Go语言)

录音并识别 效果图一、开启游览器录音权限二、前端代码三、Go代码,上传到讯飞识别录音返回到前端 效果图 recorder-core插件可以在网页中进行录音。录音文件(blob)并可以自定义上传&#xff0c;可以下载录音文件到本地,本文录音过程中会显示可视化波形&#xff0c;插件兼容PC端…

赛事|基于SprinBoot+vue的CSGO赛事管理系统(源码+数据库+文档)

CSGO赛事管理系统 目录 基于SprinBootvue的CSGO赛事管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3参赛战队功能模块 4合作方功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

OBJ文件生成PCD文件(python 实现)

代码实现 将 .obj 文件转换为 .pcd&#xff08;点云数据&#xff09; 代码文件。 import open3d as o3d# 加载 .obj 文件 mesh o3d.io.read_triangle_mesh("bunny.obj")# 检查是否成功加载 if not mesh.has_vertices():print("无法加载 .obj 文件&#xff0c…