Spotify Chartify 数据可视化教程:从入门到实践

Spotify Chartify 数据可视化教程:从入门到实践

chartify Python library that makes it easy for data scientists to create charts. chartify 项目地址: https://gitcode.com/gh_mirrors/ch/chartify

1. 项目概述

Spotify Chartify 是一个基于 Bokeh 构建的 Python 数据可视化库,专为简化创建美观、交互式图表而设计。它采用"整洁数据"(Tidy Data)格式作为输入,提供直观的API和合理的默认样式,特别适合数据分析师和业务用户快速创建专业级可视化图表。

2. 基础图表对象

2.1 创建基础图表

创建 Chartify 图表的第一步是实例化一个 Chart 对象:

import chartify
ch = chartify.Chart()

2.2 显示图表

使用 .show() 方法渲染图表:

ch.show()

此时图表是空白的,因为尚未添加任何数据或配置。

3. 图表标签与注释

3.1 添加基本标签

可以为图表添加各种标签元素:

ch = chartify.Chart()
ch.set_title("销售数据分析")
ch.set_subtitle("2023年季度报告")
ch.set_source_label("数据来源: 公司数据库")
ch.axes.set_xaxis_label("产品类别")
ch.axes.set_yaxis_label("销售额(万元)")

3.2 添加注释

Chartify 提供了丰富的注释功能:

ch.callout.text("峰值点", x=15, y=200)
ch.callout.line(x=15, y_start=0, y_end=200, 
               line_color='red', line_width=2)

4. 数据格式要求

4.1 整洁数据格式

Chartify 要求输入数据采用"整洁数据"(Tidy Data)格式:

  • 每个变量一列
  • 每个观察值一行

4.2 有效数据格式示例

# 有效格式 - Pandas DataFrame
chart_data = data.groupby(['country'])['quantity'].sum().reset_index()

4.3 无效数据格式

# 无效格式 - 透视表
pivoted_data = pd.pivot_table(data, columns='country', 
                             values='quantity', index='fruit')

# 无效格式 - Pandas Series
data.groupby(['country'])['quantity'].sum()

4.4 数据转换

可以使用 pd.melt() 将透视数据转换为整洁格式:

melted_data = pd.melt(pivoted_data.reset_index(),
                     id_vars='fruit',
                     value_vars=pivoted_data.columns)

5. 图表类型与坐标轴

5.1 坐标轴类型

坐标轴类型决定了可用的图表类型:

# 分类x轴 + 线性y轴
ch = chartify.Chart(x_axis_type='categorical', y_axis_type='linear')

# 日期x轴 + 线性y轴
ch = chartify.Chart(x_axis_type='datetime', y_axis_type='linear')

# 线性x轴 + 密度y轴
ch = chartify.Chart(x_axis_type='linear', y_axis_type='density')

5.2 条形图示例

垂直条形图
bar_data = data.groupby('country')[['quantity']].sum().reset_index()

(chartify.Chart(x_axis_type='categorical')
 .plot.bar(bar_data, 'country', 'quantity')
 .show()
)
水平条形图
(chartify.Chart(y_axis_type='categorical')
 .plot.bar(bar_data, 'country', 'quantity', 
          orientation='horizontal')
 .show()
)
分组条形图
grouped_data = data.groupby(['country', 'fruit'])[['quantity']].sum().reset_index()

(chartify.Chart(x_axis_type='categorical')
 .plot.bar(grouped_data, 'country', 'quantity', 
          color_column='fruit')
 .show()
)

6. 高级功能

6.1 方法链式调用

Chartify 支持方法链式调用,使代码更简洁:

(chartify.Chart(blank_labels=True)
 .callout.text('重要提示', 10, 10)
 .axes.set_xaxis_range(0, 100)
 .show()
)

6.2 输出格式

可以选择不同的输出格式:

ch.show('html')  # 交互式HTML格式
ch.show('png')   # 静态PNG图像

6.3 颜色主题

Chartify 提供多种内置颜色主题:

# 查看可用颜色主题
print(chartify.color_palettes.show())

# 使用指定主题
ch.style.set_color_palette('categorical', 'Spotify')

7. 学习资源

7.1 内置示例

Chartify 提供了丰富的内置示例,是学习的好资源:

# 查看所有示例方法
print([x for x in dir(chartify.examples) if not x.startswith('_')])

# 查看条形图示例
chartify.examples.plot_bar()

7.2 获取帮助

在 Jupyter Notebook 中可以使用以下方式获取帮助:

  • 按 Tab 键查看对象可用方法
  • 使用 ? 查看文档
  • 按 Shift+Tab 查看方法签名

8. 最佳实践

  1. 数据预处理:确保数据采用整洁格式
  2. 明确坐标轴类型:根据数据类型选择合适的坐标轴类型
  3. 利用方法链:使代码更清晰易读
  4. 从示例开始:参考内置示例快速上手
  5. 交互式探索:在 Jupyter 中使用 Tab 和 ? 探索功能

通过本教程,您应该已经掌握了使用 Spotify Chartify 创建基本图表的核心概念。这个库特别适合需要快速创建美观、标准化图表的分析场景,同时保留了足够的灵活性以满足定制化需求。

chartify Python library that makes it easy for data scientists to create charts. chartify 项目地址: https://gitcode.com/gh_mirrors/ch/chartify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚柯劫Esmond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值