文章概要

本文详细介绍 Pandas 的数据可视化功能,包括:

  • 基础绘图
  • 高级可视化
  • 统计图表
  • 实际应用示例

基础绘图

折线图

# 基本折线图
df.plot(x='日期', y='值')
df.plot.line(x='日期', y='值')# 多列折线图
df.plot(x='日期', y=['列1', '列2'])# 自定义样式
df.plot(x='日期', y='值',title='标题',xlabel='X轴标签',ylabel='Y轴标签',color='red',linestyle='--',marker='o')# 保存图表
plt.savefig('折线图.png')

柱状图

# 基本柱状图
df.plot.bar(x='类别', y='值')
df.plot.barh(x='类别', y='值')  # 水平柱状图# 堆叠柱状图
df.plot.bar(x='类别', y=['列1', '列2'], stacked=True)# 分组柱状图
df.plot.bar(x='类别', y=['列1', '列2'])# 自定义样式
df.plot.bar(x='类别', y='值',title='标题',color='skyblue',width=0.8,alpha=0.7)

散点图

# 基本散点图
df.plot.scatter(x='列1', y='列2')# 带颜色映射的散点图
df.plot.scatter(x='列1', y='列2', c='列3', cmap='viridis')# 带大小映射的散点图
df.plot.scatter(x='列1', y='列2', s='列3')# 自定义样式
df.plot.scatter(x='列1', y='列2',title='标题',color='red',marker='*',s=100)

饼图

# 基本饼图
df.plot.pie(y='值', labels=df['类别'])# 环形图
df.plot.pie(y='值', labels=df['类别'], hole=0.5)# 自定义样式
df.plot.pie(y='值',labels=df['类别'],title='标题',autopct='%1.1f%%',colors=['red', 'blue', 'green'])

高级可视化

多子图

# 创建子图
fig, axes = plt.subplots(2, 2, figsize=(12, 8))# 在子图中绘图
df.plot.line(x='日期', y='列1', ax=axes[0, 0])
df.plot.bar(x='类别', y='列2', ax=axes[0, 1])
df.plot.scatter(x='列1', y='列2', ax=axes[1, 0])
df.plot.pie(y='值', labels=df['类别'], ax=axes[1, 1])# 调整布局
plt.tight_layout()

自定义样式

# 设置全局样式
plt.style.use('seaborn')# 自定义颜色
colors = ['#FF9999', '#66B2FF', '#99FF99', '#FFCC99']# 自定义字体
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['font.size'] = 12# 自定义网格
plt.grid(True, linestyle='--', alpha=0.7)# 自定义图例
plt.legend(loc='upper right', frameon=True, fancybox=True, shadow=True)

交互式图表

# 使用 plotly 创建交互式图表
import plotly.express as px
import plotly.graph_objects as go# 折线图
fig = px.line(df, x='日期', y='值', title='交互式折线图')
fig.show()# 散点图
fig = px.scatter(df, x='列1', y='列2', color='列3', title='交互式散点图')
fig.show()# 保存为 HTML
fig.write_html('交互式图表.html')

统计图表

箱线图

# 基本箱线图
df.plot.box(y='值')# 多列箱线图
df.plot.box(y=['列1', '列2'])# 分组箱线图
df.boxplot(column='值', by='类别')# 自定义样式
df.plot.box(y='值',title='标题',color='skyblue',vert=False)  # 水平箱线图

直方图

# 基本直方图
df.plot.hist(y='值')# 多列直方图
df.plot.hist(y=['列1', '列2'])# 自定义样式
df.plot.hist(y='值',bins=20,title='标题',color='skyblue',alpha=0.7)

密度图

# 基本密度图
df.plot.kde(y='值')# 多列密度图
df.plot.kde(y=['列1', '列2'])# 自定义样式
df.plot.kde(y='值',title='标题',color='red',linestyle='--')

热力图

# 基本热力图
import seaborn as sns
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')# 自定义样式
sns.heatmap(df.corr(),annot=True,cmap='coolwarm',center=0,fmt='.2f',square=True)

实际应用示例

示例1:股票数据分析可视化

# 创建示例数据
dates = pd.date_range('2023-01-01', periods=100)
stock_data = pd.DataFrame({'收盘价': np.random.randn(100).cumsum() + 100,'成交量': np.random.randint(1000, 10000, 100),'MA5': None,'MA20': None
}, index=dates)# 计算移动平均
stock_data['MA5'] = stock_data['收盘价'].rolling(window=5).mean()
stock_data['MA20'] = stock_data['收盘价'].rolling(window=20).mean()# 创建子图
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8), height_ratios=[2, 1])# 绘制K线图
stock_data['收盘价'].plot(ax=ax1, label='收盘价')
stock_data['MA5'].plot(ax=ax1, label='MA5')
stock_data['MA20'].plot(ax=ax1, label='MA20')# 绘制成交量图
stock_data['成交量'].plot(ax=ax2, kind='bar', color='skyblue', alpha=0.7)# 设置标题和标签
ax1.set_title('股票价格走势')
ax1.set_ylabel('价格')
ax1.legend()
ax2.set_title('成交量')
ax2.set_ylabel('成交量')# 调整布局
plt.tight_layout()
plt.show()

示例2:销售数据分析可视化

# 创建示例数据
dates = pd.date_range('2023-01-01', periods=365)
sales_data = pd.DataFrame({'销售额': np.random.randn(365).cumsum() + 1000,'订单数': np.random.randint(10, 100, 365),'客单价': None
}, index=dates)# 计算客单价
sales_data['客单价'] = sales_data['销售额'] / sales_data['订单数']# 创建子图
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(12, 12))# 绘制销售额趋势
sales_data['销售额'].plot(ax=ax1, color='blue')
ax1.set_title('销售额趋势')
ax1.set_ylabel('销售额')# 绘制订单数分布
sales_data['订单数'].plot.hist(ax=ax2, bins=30, color='green', alpha=0.7)
ax2.set_title('订单数分布')
ax2.set_xlabel('订单数')
ax2.set_ylabel('频次')# 绘制客单价箱线图
sales_data.boxplot(column='客单价', ax=ax3)
ax3.set_title('客单价分布')
ax3.set_ylabel('客单价')# 调整布局
plt.tight_layout()
plt.show()

总结

数据可视化部分涵盖了:

  1. 基础图表类型(折线图、柱状图、散点图、饼图)
  2. 高级可视化技术(多子图、自定义样式、交互式图表)
  3. 统计图表(箱线图、直方图、密度图、热力图)
  4. 实际应用示例

掌握数据可视化技术对于数据分析至关重要,它可以帮助我们:

  • 直观地展示数据特征和趋势
  • 发现数据中的规律和异常
  • 有效地传达分析结果
  • 支持决策制定

建议通过实际项目多加练习,熟悉各种可视化方法的适用场景和组合使用方式。同时,也要注意:

  • 选择合适的图表类型
  • 保持图表的简洁性和可读性
  • 使用适当的颜色和样式
  • 添加必要的标题和标签
  • 考虑图表的交互性需求

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

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

相关文章

Linux故障排查

目录 案例1:GRUB引导故障 案例2:文件系统只读故障 案例3:OOM Killer触发 案例4:系统启动卡住(initramfs损坏) 案例5:磁盘空间耗尽 案例6:SSH登录缓慢 案例7:逻辑卷…

pikachu靶场通关笔记36 越权01之水平越权

目录 一、水平越权 二、账户功能探测 1、登录账号lucy 2、登录账号lili 3、登录账号kobe 三、源码分析 四、渗透实战 1、登录lucy账号 2、越权访问lili账户资料 3、越权访问kobe账户资料 本系列为《pikachu靶场通关笔记》渗透实战,本文通过对越权关卡源码…

javaweb -Ajax

Ajax的定义 Ajax(Asynchronous JavaScript and XML)是一种用于创建异步 Web 应用的技术,允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分内容。 Ajax的核心特点 异步通信:通过后台与服务器交互,用…

11.OpenCV—联合QT环境配置

1.QT环境变量配置 在Qt中配置OpenCV 3.4.6与Visual Studio 2017的步骤如下: 一、前期准备 安装组件验证 确认已安装Qt的MSVC2017版本(如Qt 5.12 MSVC2017 64-bit) 检查Visual Studio 2017的MSVC编译器是否正常工作 OpenCV库准备 从官网…

2025虚幻引擎一般用什么模型格式

2025虚幻引擎一般用什么模型格式 前言 积累了一些人物模型发现有的有骨骼,有的没骨骼,有的要转换格式,有的直接可以用,所以了解一下各种模型。 2025虚幻人物模型积累 格式转换真麻烦。 2025.uexp、.uasset文件、.ubulk如何打…

电脑在使用过程中频繁死机怎么办

正兴致勃勃地打游戏,或者赶着完成一份重要的工作文档,电脑突然死机了,鼠标动不了,键盘也没反应,只能干瞪眼干着急。电脑在使用过程中频繁死机,真的太影响心情和效率了。今天咱就来好好聊聊,遇到…

【Java_EE】设计模式

设计模式:解决一些固定场景的固定套路,是一种代码风格的知道指南。设计模式不止23种 1、单例设计模式 单例设计模式:确保一个类只有一个实例,提供全局访问点 单例模式的实现方式: 1:饿汉模式 /*** 饿汉…

Nginx代理缓存静态资源

问题描述 有两台服务器,一台是外网的网关服务器,一台是内网的资源服务器,但是两台服务器距离很远(跨省),页面中依赖大量插件资源,加载耗时久,本章重点讲解Nginx代理缓存静态资源。 …

Blender 转换为 STP:软件操作与迪威模型网在线转换全指南

在三维设计与工程制造领域,不同格式的文件承担着各自的使命。Blender 作为一款功能强大且开源的三维建模软件,被众多设计师、艺术家以及学生广泛使用,能够创作出风格多样、细节丰富的三维模型。而 STP 格式作为制造业通用的数据交换标准&…

WebFuture:PDF页面去掉下载按钮

问题描述:客户要求pdf页面不显示下载按钮 解决办法:WF15.2版本开始会在内容管理配置增加“允许下载 PDF“开关;之前的版本需要替换文件来处理 1.备份网站下的base文件夹,路径为/wwwroot/content/_common/base/,然后覆…

【JVM】- 类加载与字节码结构2

编译期处理(语法糖) java编译器把.java源码编译成.class字节码的过程,自动生成和转换的一些代码。 默认构造器 public class Candy01 { }编译成class后的代码 public class Candy1 {public Candy1(){super();} }自动拆装箱(jd…

WSL2 中安装 cuDNN​​ 的完整指南

以下是关于 ​​cuDNN​​ 的详细介绍及在 ​​WSL2 中安装 cuDNN​​ 的完整指南,结合权威资料整理而成: 📚 ​​一、cuDNN 深度解析​​ ​​1. 定义与作用​​ ​​cuDNN​​(CUDA Deep Neural Network Library)是…

Apache Doris FE 问题排查与故障分析全景指南

前言: FE(Frontend)是 Apache Doris 集群架构中的“大脑”,负责元数据管理、查询解析和调度等关键任务。一旦 FE 出现问题,整个集群的稳定性和可用性将受到严重影响。因此,掌握 FE 故障定位与排查方法对于保…

RK AndroidFramework 内置应用可,卸载,恢复出厂设置恢复安装

device/rockchip/rk356x/rk3568_r/preinstall_del/Android.mkdevice/rockchip/rk356x/rk3568_r/preinstall_del/Android.mk include $(call all-subdir-makefiles) 拿内置LoyversePos应用做例子 device/rockchip/rk356x/rk3568_r/preinstall_del/preinstall.mk PRODUCT_PACK…

一文了解Blob文件格式,前端必备技能之一

文章目录 前言一、什么是Blob?二、Blob的基本特性三、Blob的构造函数四、常见使用场景1. 文件下载2. 图片预览3. 大文件分片上传 四、Blob与其他API的关系1. File API2. FileReader3. URL.createObjectURL()4. Response 五、性能与内存管理六、实际案例:…

LLMs 系列实操科普(4)

六、deep research 这是 chatgpt 推出的功能,但我这里是免费用户,一个月才有 5 次使用机会,而且使用的是轻量化模型版本,相对体验上比较鸡肋一些。 那这个深度思考研究是个什么东西呢? 根据 openai 对其的解释是&…

若依框架前端调用后台服务报跨域错误

背景:使用若依框架的前后端分离项目,前后端开发在同一个办公室情况下前端调用后端服务提示如下报错:Access to XMLHttpRequest at http://ip1:8089/online/layer/dataType from origin http://ip2:6090 has been blocked by CORS policy: Res…

PHP商城源码:构建高效电商平台的利器

一、PHP商城源码的核心优势 1. **开源免费,降低成本** PHP作为开源语言,拥有庞大的开发者社区,成熟的商城源码(如EcShop、OpenCart)可免费获取,大幅降低企业的技术投入成本。 2. **开发效率高** PHP语法…

【学习笔记】C++代码规范整理

【学习笔记】C代码规范整理 一、匿名空间namespace 匿名命名空间(Anonymous Namespace)是一种特殊的命名空间声明方式,其作用是将声明的成员限定在当前编译单元(源文件)内可见,类似于使用 static 关键字修…

数学复习笔记 29 不定积分

前言 复习的时候时常复习一下以前复习的高数,温故而知新,可以为师矣。现实生活中有非常多让我难受的事情,贤者模式的时候也会对一些自己的行为嗤之以鼻,复习考研对其他三门科目都没有学出来正反馈,只能从数学这儿找一…