Claude Code × Medical Application
【Claude Code】治療の流れを1枚の図に Part2:図の設計 — 絞り込んでも並びと色を変えない

1. はじめに — 絞り込むたびに図が塗り替わると、比べられない
Part0 で見たとおり、治療ラインの推移は、図の柱や帯をクリックするとその患者集団だけに絞り込めます。このとき、素直に作ると次のことが起きます。
- 絞り込んだ集団の中で人数順に並べ直すので、柱の上下が入れ替わる
- 色を人数順に割り当て直すので、同じ治療の色が変わる
- 「少数の治療を Other にまとめる」線を集団ごとに引き直すので、さっきまであった柱が Other に消える
どれも、その集団だけを見るなら自然です。ところが、絞り込みの前と後を見比べたいときには困ります。同じ治療が別の場所に別の色で出る図は、比べようがありません。
この回では、比べられる図にするための設計を順に見ていきます。
- 並び順・色・Other を「絞り込む前」で決める
- 少数の治療を Other にまとめる線
- 色は8色まで — 配色の確かめ方
- 並び順の決め方
- 割合の分母 — 全患者か、到達患者か
- 図以外の見方
- この設計の限界
- 1,768人1次治療の MTX 単剤をクリックして絞り込んだ人数(架空のデータ、全3,000人中)
- 2%少数の治療を Other にまとめる既定の線
- 8色治療に割り当てる色の上限
- 2通り割合の分母(全患者・到達患者)
2. 並び順・色・Other を「絞り込む前」で決める
2-1. 決める集団と、描く集団を分ける
治療ラインの推移では、図を作るときに集団を2つに分けて扱います。
| 決める集団 | 描く集団 | |
|---|---|---|
| 中身 | フィルタ(年齢・施設など)を当てたあと、クリックで絞り込む前 の集団 | クリックで絞り込んだあとの集団 |
| 使い道 | Other へのまとめ方、柱の並び順、色の割り当て | 柱と帯の太さ、人数、割合 |
クリックで絞り込んでも「決める集団」は変わらないので、並び順・色・Other のまとめ方はそのままです。変わるのは、柱と帯の太さだけです。
2-2. 実際の画面
架空のデータ(3,000人)で、1次治療の MTX 単剤の柱をクリックすると、1,768人に絞り込まれます。


絞り込みの条件は図の上にまとめて表示され、✕ で個別に外せます。同じラインの別の柱をクリックすると、前の絞り込みと入れ替わります。1人の患者が同じラインで2つの治療を受けることはないので、重ねると誰も残らないからです。
2-3. 絞り込みは書き出しにも引き継ぐ
絞り込んだ状態は、表や暦年推移のタブ、PNG・SVG・CSV の書き出しにもそのまま引き継ぎます。図だけ絞り込まれていて、表は全体のまま、という食い違いを起こさないためです。
3. 少数の治療を Other にまとめる線
3-1. まとめる決まり
人数の少ない治療をすべて柱にすると、細い帯が増えて図が読めなくなります。そこで、次のどちらかに当たる治療を Other にまとめます。
- 表示しているライン全体 でその治療が出てくる件数を足し、全体に占める割合が「少数レジメンを Other に」の値(既定 2%)未満
- 色を割り当てる上限(既定 8)を超えた分。人数の少ないものから入る

まとめるかどうかを ラインごとには決めない のがポイントです。ラインごとに決めると、同じ治療が1次治療では柱になり、3次治療では Other に消える、ということが起きます。そうなると、色と並び順をラインをまたいで同じに保てません。
3-2. 線の位置で図は変わる
架空のデータで、まとめる線を 0% から 10% まで動かすと、次のようになりました。
表示するラインを3までにしたとき、ライン1〜3を足した割合は、いちばん小さい JAKi(表記の違いをまとめる前の全角の書き方)で 3.47% です。
- 線を 3% までにしているあいだは、どの柱も Other に入らない
- 3.5% にすると
JAKiが Other に入り、ライン2・3の柱が9本から8本に減る - ほかの群は、ライン1〜3を足すとどれも 10% 以上あるので、10% まで上げても残る
ライン1だけを見ると、tnfi+mtx は 1.7% しかありません。それでも柱として残るのは、ライン1〜3を足すと 10.6% あるからです。3-1 の「あるラインでは少なくても、Other にならない」は、この場合です。
3-3. Other の中身を必ず見る
Other にまとめると図は読みやすくなりますが、臨床的に大事な治療が Other に埋もれる おそれがあります。新しく出た薬は、出てすぐは人数が少ないので、まさに Other に入りやすい治療です。
そこで、サイドバーの「Other にまとめた N 件」を開くと、何をまとめたかを一覧で見られるようにしています。図を人に見せる前に、ここを確かめてください。
4. 色は8色まで — 配色の確かめ方
4-1. なぜ8色か
色を割り当てる上限を 8 にしたのは、配色を8色までしか確かめていない からです。9色目を足すと、どれかと見分けがつかなくなります。
8色は、次の基準で選び、計算で確かめました。
| 基準 | 確かめ方 |
|---|---|
| 色覚の違いでも見分けられる | P型・D型の見え方を公開論文の式(Machado ら 2009)で計算し、隣どうしの色の差 が目安を上回る(最小 13.8) |
| 地の色と見分けられる | 明るい地・暗い地それぞれで、地とのコントラストを計算する |
| 会社の色を入れる | 1色目は HerzLeben の青緑 |
8色すべての組み合わせを同時に見分けやすくすることは、8色ではできません。Sankey 図は柱に名前と割合を直接書き、帯の間に隙間があり、凡例と表もあるので、隣どうし の見分けやすさを基準にしました。
4-2. 文字は色に頼らない
柱の名前と割合の文字は、地とのコントラストを 4.5:1 以上にしています(名前は 19:1 前後、割合は 7.7:1 以上)。マウスを重ねたときに関係のない柱を薄くする表示でも、形だけを薄くし、文字は薄くしない ようにしました。暗い地で薄くする度合いも、目で決めずにコントラストの値から計算しています。
4-3. 色を自分で選ぶ
色見本をクリックすると、その治療の色を選び直せます。自社の薬を会社の色にしたいとき、学会発表のスライドの色に合わせたいときのためです。選んだ色は、書き出す画像にも反映されます。
5. 並び順の決め方
柱の上下の並びは、次の3つから選べます。
| 並べ方 | 中身 |
|---|---|
| 人数順(既定) | 人数の多い順。Other と None(そのラインに来なかった人)はいちばん下 |
| 手で並べる | 一覧の ▲▼ で上下に動かす。並びは共有リンクに入り、表示するライン数を変えても保たれる |
| 並び順のコードの列 | ラインごとに並び順のコードを持つ列(架空のデータでは tx_group_1〜5)があれば、その昇順に並べる |



並び順のコードは、学会発表や論文で「1次治療は csDMARD、次に生物学的製剤…」と決まった順に並べたいときに使います。
6. 割合の分母 — 全患者か、到達患者か
6-1. 2つの分母
柱と帯に添える割合は、分母を2通りから選べます。
| 分母 | 柱(ノード)の割合 | 帯(遷移)の割合 | 向いている使い方 |
|---|---|---|---|
| 全患者 | 見えている患者全員で割る | 見えている患者全員で割る | 全体のうち、何人がその治療を受けたか |
| 到達患者 | そのラインで None ではなかった人で割る | 帯が出るライン(遷移元) で None ではなかった人で割る | 3次治療まで来た人の中で、どの治療が多いか |

同じ3次治療の柱でも、全患者を分母にすると小さく、到達患者を分母にすると大きく出ます(参照ページ の 5-1)。
到達患者を分母にしたとき、None(そのラインに来なかった人)から出る帯には割合を出しません。「来なかった人」の中で何%か、という数字は意味を持たないからです。柱の None と同じ扱いにしています。
6-2. どちらの分母かを、表と CSV に書く
どちらで出した割合かを添えずに引用しないでください。 そのために、ノード表・遷移表の割合の列の見出しに、分母を書いています。
- 「割合(分母:全患者)」
- 「割合(分母:そのラインの到達患者)」(ノード表)
- 「割合(分母:遷移元のラインの到達患者)」(遷移表)
書き出す CSV でも、割合の列の名前を pct_of_all(全患者)と pct_of_reached(到達患者)に分けました。CSV だけが別の資料に貼られても、分母が分かるようにするためです。

7. 図以外の見方
図だけでは読み取りにくいことのために、同じ集団を別の形でも見られるようにしています。
- 暦年推移:1次治療を始めた時期ごとに、どの治療が選ばれたかの移り変わり
- ノード表:ラインごとの人数と割合
- 遷移表:あるラインのどの治療から、次のラインのどの治療へ何人移ったか(6-2)


数字を資料に引用するときは、図から目で読むより、表の数字か書き出した CSV を使ってください。
8. この設計の限界
| 場合 | 起きること |
|---|---|
| 絞り込んだ集団が小さい | 並び順と色は全体で決めたままなので、絞り込んだ集団ではほとんどいない治療が上に来ることがある |
| あるラインでだけ少ない治療 | Other にまとめるかどうかをライン全体の件数で決めるので、そのラインではごく少なくても柱として残る(3-1) |
| フィルタを変えた | フィルタは「決める集団」を変えるので、並び順・色・Other は決め直される。クリックの絞り込みとは扱いが違う |
| 9種類以上の治療を区別したい | 色が足りないので、人数の少ないものから Other に入る。表示するライン数を減らすか、群の名前を見直す |
| 帯は1つ前のラインしか覚えていない | 2次→3次の帯は、1次に何を使ったかを区別しない。知りたいときは1次の柱をクリックして絞り込む(参照ページ の 5-4) |
9. Claude Code に任せたことと、人が決めたこと
| 任せたこと | 人が決めたこと |
|---|---|
| Sankey 図の配置の計算と描画 | 並び順・色・Other を絞り込む前の集団で決めること |
| Other にまとめる件数の数え方の実装と、その説明の文 | ラインごとには決めず、表示しているライン全体で決めること |
| 配色の候補の計算(色覚・コントラスト) | 色を8色までにすること、隣どうしを基準にすること |
| 暗い地で薄くする度合いの計算 | 形だけを薄くし、文字は薄くしないこと |
| 並び順のコードの列を見分ける決まりの実装 | 意味のない並びになる列は候補に出さないこと |
| 表・暦年推移・書き出しへの絞り込みの引き継ぎ | 分母を2通りにし、表の見出しと CSV の列名に必ず書くこと |
配色の計算や、薄くする度合いの値は、Claude Code に任せたほうが正確です。一方で、何を比べやすくしたいのか、どこで線を引くのか は、図を使う場面を知っている人が決める必要がありました。
10. まとめ
- 絞り込むたびに図の並びや色が変わると、前後を比べられない
- 並び順・色・Other へのまとめ方は、フィルタを当てたあと・クリックで絞り込む前の集団で決め、絞り込んでも変えない。変わるのは帯の太さだけ
- 少数の治療は、表示しているライン全体の件数で 2% 未満を Other にまとめる。線の位置で図は変わるので、Other の中身は必ず見る
- 色は、色覚とコントラストを計算で確かめた8色まで。文字は色に頼らず、4.5:1 以上のコントラストを保つ
- 割合の分母は全患者と到達患者の2通り。表の見出しと CSV の列名に、どちらの分母かを書く
比べられる図は、動かない図です。動かすのは帯の太さだけにしました。
次のステップ
Part3 では、図に出る人数が正しいとどう言えるかを扱います。正解を先に決めた架空の患者データ、わざと崩した入力、表記の違いのまとめ方(ルールと AI)を、正解と突き合わせた結果とあわせて紹介します。
出典
- Machado GM, Oliveira MM, Fernandes LAF. A Physiologically-based Model for Simulation of Color Vision Deficiency. IEEE Transactions on Visualization and Computer Graphics. 2009;15(6):1291-8.
- 本ページの画面写真と数値は、架空の関節リウマチのデータ(3,000人)で作成したものです。実在の患者・施設・薬剤・企業とは関係ありません
