Skip to content

统计与图表

Obsidian 不仅可以记录笔记,还可以通过插件实现数据统计和可视化,帮助你追踪习惯、分析数据、生成报告。

概述

为什么需要统计图表?

场景价值
习惯追踪记录每日习惯完成情况
数据分析分析笔记、任务、阅读等数据
进度监控项目进度、学习进度可视化
知识统计了解知识库的规模和结构
报告生成自动生成周报、月报

主要工具

工具类型适用场景
Dataview数据查询笔记统计、数据筛选
Tracker习惯追踪时间序列数据、习惯打卡
Charts图表展示数据可视化
Heatmap Calendar热力图GitHub 风格活动日历
Obisidian Stats仓库统计整体数据分析

Dataview 数据查询

基础统计

Dataview 是最强大的数据查询工具,可以进行各种统计:

笔记数量统计

dataview
TABLE length(rows) as 数量
FROM ""
GROUP BY file.folder as 文件夹
SORT 数量 DESC

按标签统计

dataview
TABLE 
  length(filter(rows, (r) => r.file.tags)) as 标签数量
FROM ""
WHERE file.tags

进阶统计

最近修改统计

dataview
TABLE 
  file.mtime as 最后修改,
  date(now) - file.mtime as 距今天数
FROM ""
WHERE file.mtime >= date(today) - dur(7 days)
SORT file.mtime DESC
LIMIT 20

任务完成率

dataview
TABLE 
  length(filter(file.tasks, (t) => t.completed)) as 已完成,
  length(file.tasks) as 总任务,
  round(length(filter(file.tasks, (t) => t.completed)) / length(file.tasks) * 100, 1) + "%" as 完成率
FROM "projects"
WHERE length(file.tasks) > 0

数据汇总

dataview
TABLE 
  sum(rows.file.size) as 总大小,
  length(rows) as 笔记数,
  sum(length(rows.file.tasks)) as 总任务数
FROM ""

Tracker 习惯追踪

安装配置

  1. 安装「Tracker」插件
  2. 在日记或指定笔记中记录数据
  3. 使用命令生成追踪图

基本使用

数据记录

在笔记中使用 YAML frontmatter 记录:

yaml
---
mood: 8
sleep: 7
exercise: 1
reading: 30
---

或者使用内联标记:

markdown
# 今天的心情
mood:: 8

# 睡眠时长
sleep:: 7

# 运动
exercise:: ✅

# 阅读时间(分钟)
reading:: 30

生成图表

使用代码块创建追踪图:

tracker
searchType: frontmatter
searchTarget: mood
folder: diary
startDate: 2024-01-01
endDate: 2024-01-31
line:
    title: 心情追踪
    yAxisLabel: 心情指数
    lineColor: "#7c3aed"

图表类型

折线图

tracker
searchType: frontmatter
searchTarget: sleep
folder: diary
line:
    title: 睡眠时长追踪
    yAxisLabel: 小时
    lineColor: blue
    pointColor: blue
    pointRadius: 3

柱状图

tracker
searchType: frontmatter
searchTarget: reading
folder: diary
bar:
    title: 每日阅读时间
    yAxisLabel: 分钟
    barColor: green

热力图

tracker
searchType: frontmatter
searchTarget: exercise
folder: diary
heatmap:
    title: 运动热力图
    colorRange: ["#ebedf0", "#9be9a8", "#40c463", "#30a14e", "#216e39"]

高级配置

多数据对比

tracker
searchType: frontmatter
searchTarget: mood, sleep
folder: diary
line:
    title: 心情与睡眠对比
    series1:
        name: 心情
        lineColor: purple
    series2:
        name: 睡眠
        lineColor: blue
    yAxisLabel: 数值

目标线

tracker
searchType: frontmatter
searchTarget: steps
folder: diary
line:
    title: 每日步数
    yAxisLabel: 步数
    lineColor: green
    thresholdLine: 8000
    thresholdLineColor: red
    thresholdLabelText: 目标 8000 步

Charts 图表插件

安装

安装「Obsidian Charts」插件,支持更多图表类型。

基本用法

饼图

chart
type: pie
title: 任务分类统计
labels: [工作, 学习, 生活, 娱乐]
series: [40, 25, 20, 15]
colors: ["#7c3aed", "#3b82f6", "#10b981", "#f59e0b"]

柱状图

chart
type: bar
title: 月度阅读统计
labels: [1月, 2月, 3月, 4月, 5月, 6月]
series:
  - name: 书籍
    data: [5, 3, 4, 6, 4, 5]
  - name: 文章
    data: [12, 15, 10, 18, 14, 16]

雷达图

chart
type: radar
title: 技能评估
labels: [编程, 设计, 写作, 沟通, 管理]
series:
  - name: 当前水平
    data: [8, 6, 7, 5, 6]
  - name: 目标水平
    data: [9, 8, 8, 7, 8]

与 Dataview 联动

结合 Dataview 数据生成图表:

markdown
<!-- 先用 Dataview 查询数据 -->
```dataview
TABLE length(rows) as 数量
FROM "projects"
GROUP BY status
chart
type: pie
title: 项目状态分布
labels: [进行中, 已完成, 暂停]
series: [5, 12, 2]

## Heatmap Calendar 热力图

### 安装配置

安装「Heatmap Calendar」插件,生成 GitHub 风格的活动日历。

### 基本用法

#### 通用热力图

```heatmap
startDate: 2024-01-01
endDate: 2024-12-31
searchType: frontmatter
searchTarget: mood
folder: diary

自定义颜色

heatmap
startDate: 2024-01-01
searchType: tag
searchTarget: "#运动"
colors: ["#f0f0f0", "#c6e48b", "#7bc96f", "#239a3b", "#196127"]

应用场景

yaml
常见用途:
  - 写作活动追踪
  - 运动打卡记录
  - 学习时间统计
  - 项目开发进度
  - 阅读量统计

Obisidian Stats 仓库统计

安装

安装「Obsidian Stats」插件,获取仓库整体统计信息。

统计内容

统计项说明
笔记总数仓库中的笔记数量
总字数所有笔记的字数
平均字数每篇笔记的平均字数
创建趋势每月创建的笔记数
修改趋势笔记修改频率
链接统计内部链接数量
标签统计标签使用情况
附件统计图片、文件数量

使用方法

  1. 打开命令面板
  2. 输入「Obsidian Stats: Show Stats」
  3. 查看统计面板

实战案例

习惯追踪看板

创建一个综合习惯追踪页面:

markdown
# 📊 习惯追踪看板

## 本周运动
```tracker
searchType: frontmatter
searchTarget: exercise
folder: diary
startDate: date(today) - dur(7 days)
bar:
    title: 本周运动情况
    barColor: green

心情趋势

tracker
searchType: frontmatter
searchTarget: mood
folder: diary
startDate: date(today) - dur(30 days)
line:
    title: 30天心情趋势
    lineColor: purple

阅读热力图

heatmap
searchType: tag
searchTarget: "#阅读"
startDate: date(today) - dur(90 days)

### 项目进度追踪

```markdown
# 项目进度

## 任务完成情况
```dataview
TABLE 
  file.link as 项目,
  length(filter(file.tasks, (t) => t.completed)) as 已完成,
  length(file.tasks) as 总任务,
  round(length(filter(file.tasks, (t) => t.completed)) / length(file.tasks) * 100) + "%" as 进度
FROM "projects"
WHERE length(file.tasks) > 0
SORT 进度 DESC

进度图表

chart
type: bar
title: 项目进度
labels: [项目A, 项目B, 项目C]
series:
  - name: 完成进度
    data: [75, 50, 90]

### 读书统计

```markdown
# 📚 阅读统计

## 本月阅读
```dataview
TABLE 
  title as 书名,
  author as 作者,
  pages as 页数,
  status as 状态
FROM "books"
WHERE file.cmonth = date(today).month

阅读趋势

tracker
searchType: frontmatter
searchTarget: reading_time
folder: diary
startDate: date(today) - dur(30 days)
line:
    title: 每日阅读时间
    yAxisLabel: 分钟

### 周报自动生成

```markdown
# 📅 周报 - <% tp.date.now("YYYY-MM-DD") %>

## 本周创建的笔记
```dataview
TABLE file.link as 笔记, file.ctime as 创建时间
FROM ""
WHERE file.ctime >= date(today) - dur(7 days)
SORT file.ctime DESC

本周完成的任务

dataview
TASK
FROM ""
WHERE completed AND completion >= date(today) - dur(7 days)

本周活动

heatmap
searchType: tag
searchTarget: "#工作"
startDate: date(today) - dur(7 days)

## 数据可视化最佳实践

### 选择合适的图表

| 数据类型 | 推荐图表 |
|----------|----------|
| 时间趋势 | 折线图 |
| 分类对比 | 柱状图 |
| 占比分布 | 饼图 |
| 活动频率 | 热力图 |
| 多维度评估 | 雷达图 |

### 数据记录规范

```yaml
Frontmatter 标准:
  日期字段: date: 2024-01-15
  数值字段: mood: 8, sleep: 7
  布尔字段: exercise: true
  标签: tags: [习惯, 运动]

定期回顾

  • 每周查看习惯追踪
  • 每月分析数据趋势
  • 每季度评估目标完成度

常见问题

数据不显示?

检查以下项:

  • 文件夹路径是否正确
  • frontmatter 字段名是否匹配
  • 日期格式是否正确
  • 是否启用了 Dataview 的 JavaScript 查询

图表样式不美观?

调整配置:

  • 自定义颜色方案
  • 调整图表尺寸
  • 添加标题和标签
  • 使用合适的图表类型

性能问题?

优化建议:

  • 限制查询范围(指定文件夹)
  • 减少数据量(设置时间范围)
  • 避免在单页面使用过多图表

下一步

最后更新:2026年2月28日编辑此页反馈问题