Claude Code × Medical Application

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

1. はじめに — 絞り込むたびに図が塗り替わると、比べられない

Part0 で見たとおり、治療ラインの推移は、図の柱や帯をクリックするとその患者集団だけに絞り込めます。このとき、素直に作ると次のことが起きます。

  • 絞り込んだ集団の中で人数順に並べ直すので、柱の上下が入れ替わる
  • 色を人数順に割り当て直すので、同じ治療の色が変わる
  • 「少数の治療を Other にまとめる」線を集団ごとに引き直すので、さっきまであった柱が Other に消える

どれも、その集団だけを見るなら自然です。ところが、絞り込みの前と後を見比べたいときには困ります。同じ治療が別の場所に別の色で出る図は、比べようがありません。

この回では、比べられる図にするための設計を順に見ていきます。

  1. 並び順・色・Other を「絞り込む前」で決める
  2. 少数の治療を Other にまとめる線
  3. 色は8色まで — 配色の確かめ方
  4. 並び順の決め方
  5. 割合の分母 — 全患者か、到達患者か
  6. 図以外の見方
  7. この設計の限界
  • 1,768人1次治療の MTX 単剤をクリックして絞り込んだ人数(架空のデータ、全3,000人中)
  • 2%少数の治療を Other にまとめる既定の線
  • 8色治療に割り当てる色の上限
  • 2通り割合の分母(全患者・到達患者)

2. 並び順・色・Other を「絞り込む前」で決める

2-1. 決める集団と、描く集団を分ける

治療ラインの推移では、図を作るときに集団を2つに分けて扱います。

決める集団 描く集団
中身 フィルタ(年齢・施設など)を当てたあと、クリックで絞り込む前 の集団 クリックで絞り込んだあとの集団
使い道 Other へのまとめ方、柱の並び順、色の割り当て 柱と帯の太さ、人数、割合

クリックで絞り込んでも「決める集団」は変わらないので、並び順・色・Other のまとめ方はそのままです。変わるのは、柱と帯の太さだけです。

上の段は並び順と色を固定した場合で、絞り込む前と、1次の MTX 単剤で絞り込んだ後の図。同じ治療が同じ位置・同じ色で、帯だけが細くなる。下の段は、絞り込むたびに並び順と色を決め直した場合の模式図で、同じ治療の位置と色が入れ替わる
並び順と色を固定した場合(上)と、絞り込むたびに決め直した場合(下)(架空のデータ)

2-2. 実際の画面

架空のデータ(3,000人)で、1次治療の MTX 単剤の柱をクリックすると、1,768人に絞り込まれます。

絞り込む前の Sankey 図。対象患者 3,000人、ライン3まで到達 27.7%(830人)
絞り込む前(架空のデータ)
1次の MTX 単剤をクリックして絞り込んだところ。対象患者 1,768人、上部に絞り込みの条件が出ている
絞り込んだ後。柱の並びと色はそのまま(架空のデータ)
クリックで絞り込む。並び順と色は変わらない(架空のデータ)

絞り込みの条件は図の上にまとめて表示され、✕ で個別に外せます。同じラインの別の柱をクリックすると、前の絞り込みと入れ替わります。1人の患者が同じラインで2つの治療を受けることはないので、重ねると誰も残らないからです。

2-3. 絞り込みは書き出しにも引き継ぐ

絞り込んだ状態は、表や暦年推移のタブ、PNG・SVG・CSV の書き出しにもそのまま引き継ぎます。図だけ絞り込まれていて、表は全体のまま、という食い違いを起こさないためです。

3. 少数の治療を Other にまとめる線

3-1. まとめる決まり

人数の少ない治療をすべて柱にすると、細い帯が増えて図が読めなくなります。そこで、次のどちらかに当たる治療を Other にまとめます。

  • 表示しているライン全体 でその治療が出てくる件数を足し、全体に占める割合が「少数レジメンを Other に」の値(既定 2%)未満
  • 色を割り当てる上限(既定 8)を超えた分。人数の少ないものから入る
少数レジメンを Other にまとめる設定を 5% にしたところ。すぐ下に、表示しているライン全体の件数で決めることの説明が出ている
少数の治療を Other にまとめる線の設定(架空のデータ)

まとめるかどうかを ラインごとには決めない のがポイントです。ラインごとに決めると、同じ治療が1次治療では柱になり、3次治療では Other に消える、ということが起きます。そうなると、色と並び順をラインをまたいで同じに保てません。

3-2. 線の位置で図は変わる

架空のデータで、まとめる線を 0% から 10% まで動かすと、次のようになりました。

まとめる線を0%から10%まで動かしたときの、ライン1〜3の柱の数の折れ線グラフ。3.5% でライン2・3の柱が9本から8本に減る
まとめる線と柱の数(架空のデータ)

表示するラインを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)があれば、その昇順に並べる
レジメンの並び:人数順(既定)
人数順(既定)(架空のデータ)
▲▼で並べ替えた Sankey 図
手で並べ替えた図(架空のデータ)
並び順のコードで並べた Sankey 図。Other が最後に来ている
並び順のコードで並べた図。論文の図と同じ並びにできる(架空のデータ)

並び順のコードは、学会発表や論文で「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)
暦年推移。ライン1の開始月ごとの治療の構成
暦年推移(架空のデータ)
ノード表。ラインごとの人数と割合。割合の列の見出しに分母が書いてある
ノード表(架空のデータ)

数字を資料に引用するときは、図から目で読むより、表の数字か書き出した 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人)で作成したものです。実在の患者・施設・薬剤・企業とは関係ありません