このページでは、Inkscapeを使って円グラフを描く方法を考えてみたいと思います。

(2024.07.08更新)
Inkscapeには「NiceCharts」という名前のエクステンションがバージョン1.3.2の時点で標準で組み込まれていて、これを使えばカンマ区切り(いわゆるCSV形式)で数値を並べたファイルを入力すると円グラフを生成してくれるようなのですが、使い方が分からず、少し試してみましたがよくわからない理由でInkscape本体ごと異常終了してしまうので、これを使って円グラフを描くのはとりあえずあきらめました。
しょうがないので、扇形のオブジェクトを表したい比率に対応するそれぞれの角度で描いておいて中心が重なるように並べるというベタな方法でやってみました。
といってもそんな単純にはいきません。
まず円/弧ツールでCtrlキーとAltキーを押しながらマウスをドラッグすることで正円を描きます。

右側のハンドル(白い丸)を下の方にドラッグすることで、弧(正確には扇形)に変形します。角度はとりあえず適当に。

ここでスナップダイアログを表示させて、「シャープノード」「オブジェクトの回転中心」「ガイドライン」のスナップを有効にしておきます。
そして、この扇形を選択ツールで2回クリックして回転ハンドル(と回転中心)を表示させておいて、回転中心をドラッグしていわゆる「要(かなめ)」のところ(シャープノード)に移動します。スナップを有効にしているので、角にピッタリ重なるように回転中心をドラッグすることができます。

これで扇形が「要(かなめ)」の位置を中心にして回転するようになりました。
そして、この扇形のオブジェクトを必要な数だけ複製し、角度を変更し、ピッタリ並べることで円グラフにしていきます。
複製した扇形オブジェクトを再び円/弧ツールで選択すると、ツールコントロールバーに「始点」の角度と「終点」の角度を入力する欄が表示されます。「始点」のほうはゼロのままにしておいて、「終点」の角度をその扇形オブジェクトが円グラフ上で占める角度に変更します。
そのためには、「終点」の入力欄に「360度を100%に対応させたときの角度を計算する式」を入力します。例えば「40%」を示す扇形にするときは「40/100*360」と入力します。そうするとInkscapeが自動的にその計算を行ってくれます。(参考:パラメータを計算式で記述する)

もちろん計算式を入力することは必須ではなく、自分で角度を計算してそれを直接入力してもOKです。
この角度変更を必要な扇形オブジェクトそれぞれに行います。

ここで扇形オブジェクトに対してパス > オブジェクトをパスへを操作して全部パスオブジェクト(扇形のパス)に変換します。扇形オブジェクトのままだとスナップ機能を使ってもぴったり並べることができないのでこうします。

次にこの扇形パスの辺に別の扇形の辺をぴったり重ねるようにしたいので、扇形パスの辺に沿ったガイドラインを描きます。扇形パスを選択しておいて、次の操作をします。
- メニューで編集 > 複製
- 複製後のストロークを「塗りなし」にする
- メニューでオブジェクト > オブジェクトをガイドに
そうすると扇形パスの辺に沿ったガイドラインが生成されます。

次の扇形パスの回転中心同士をスナップさせ、さらに扇形パスを回転させてこのガイドラインにスナップさせれば扇形パスの辺と辺をぴったり重ねることができます。これを扇形パスの数だけ繰り返します。

ガイドラインを使わずに扇形パスの辺の両端を直接スナップさせればもっと簡単なように思われますが、どういうわけか扇形パスの辺をスナップさせることができなかったので、こういう手順になりました。
あとは必要に応じてストロークを細くしたりフィルを塗りつぶしたりすれば円グラフらしくなります。
