3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

どんどん溜まる記事ストック。ストック記事をタグ×時期で可視化してみた

Last updated at Posted at 2025-11-04

積ん読というらしい

image.png

記事のストック...「あとで読む」をつい溜め込んでしまうこと、ありませんか?

これまでどんな技術に興味があって放置してきたのか、と気になり、Qiitaストック記事の傾向を見える化するダッシュボードをつくってみました。

作ったものとできること

image.png

👉こちらから試していただけます。

プロジェクト全体は GitHub にあります。

今回作成したダッシュボードでは、指定したQiitaユーザーのストック記事データを取得し、以下のような情報を表示します。

1. 直近5年間のストック分析

過去5年間にストックしたQiita記事を自動で抽出し、分析します。

2. 年別ストック数

どの年に最も多くの記事をストックしたかを一目で確認できます。学習意欲が高かった時期や、新しい技術に挑戦していた時期が見えてきます。

3. ストックしがちな記事のタグランキング

全期間で最もストックした技術タグのTOP10をランキング形式で表示。金・銀・銅メダルで上位3つを強調表示します。

4. タグのトレンド

複数のタグを選択して、年次推移を折れ線グラフで比較できます。特定の技術への関心の変化を追跡できます。

5. 詳細データ

ストックした記事を年やタグでフィルタして確認できます。おまけで CSV でデータをダウンロードできるようにしました。

技術スタックと構成

Pythonだけで構築できるWEBアプリなので、開発しやすいと思います。

  • 言語/環境: Python 3.12

  • 主要ライブラリ:

    • requests, pandas, matplotlib, streamlit, altair
  • 外部API: Qiita API(/users/{user_id}/stocks

  • 構成: Streamlit 単体で完結するシングルページアプリ

  • 入力: Qiita ユーザーアクセストークン

  • 出力: 可視化ダッシュボード、CSV

実装のポイント

Qiita API でストック記事を取得

url = f"https://qiita.com/api/v2/users/{user_id}/stocks"
headers = {"Authorization": f"Bearer {token}"}
res = requests.get(url, headers=headers, params={"page": 1, "per_page": 100})
items = res.json()

タグと年を取り出して整形

df = pd.DataFrame([...])
df["tags"] = df["tags"].apply(lambda lst: [t.lower() for t in lst])
df["year"] = pd.to_datetime(df["created_at"]).dt.year

集計と可視化(例:タグ別記事数)

tag_counter = Counter()
for tags in df["tags"]:
    tag_counter.update(tags)
top_tags = tag_counter.most_common(10)
st.bar_chart(pd.DataFrame(top_tags, columns=["タグ", "件数"]).set_index("タグ"))

分析して見えてきたこと

image.png

機械学習への関心がだんだんなくなり、生成AIやクラウドなどのストック記事が増えました。
フロントエンドは恐らくバイブコーディングをする中で色々調べたのだと思います。

補足

本当はストックのタイトル別にデータを取得できるとよいのですが、今のところそのAPIリクエストは公開されていないようなので、ストック記事全体からダッシュボードをつくっています。


3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?