当前位置: 首页 > news >正文

【AI Study】第四天,Pandas(5)- 数据可视化

文章概要

本文详细介绍 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. 实际应用示例

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

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

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

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

相关文章:

  • 什么是MapReduce
  • 机器学习常用评估指标
  • 深入理解XGBoost(何龙 著)学习笔记(四)
  • TensorFlow基础之理解张量
  • Linux系统移植10:uboot移植
  • Ubuntu22.04安装opengauss并配置远程访问、JDBC连接
  • 创世新布控球 国标
  • FramePack 全面测评:革新视频生成体验
  • 蚂蚁百宝箱+MCP打造p 人解放神器agent,解放大脑
  • class对象【C#】2025复习
  • linux 下 jenkins 构建 uniapp node-sass 报错
  • rapidocr v3.2.0发布
  • CompletableFuture异步编程的六大典型问题与解决方案
  • 从零学起VIM
  • Zama 的门限密钥管理系统(TKMS)
  • 如何利用小模型,快速筛选照片
  • Vulkan学习笔记10—描述符与统一缓冲区
  • 使用nvm管理npm和pnpm
  • 支持selenium的chrome driver更新到137.0.7151.119
  • Java课堂笔记11
  • fomo3d网站开发/朝阳网站建设
  • 网站的分页做不好会影响主页/湖南正规seo公司
  • pinterest的优点/seo 的作用和意义
  • 怎么做中英文版网站/网站推广的方式有哪些?
  • 男人和女人做羞羞的免费网站/灰色广告投放平台
  • 厦门响应式网站建设/网站排名优化课程