SVG Pie Chartの描画
今回のプロジェクトでは、円グラフをそのままsvgにしてみました.
YouTubeと勉強資料を見て、整理した内容を書きたいです.
1.円グラフを描くストローク-幅:半径の2倍 stroke-dasharray : パイ図では、1つのパイはstroke−dasharrayで表される. 破線長(最初のパラメータ):円グラフのパーセント(n/1022 PI*r) 破線間の長さ(2番目のパラメータ):円周の値.2PIr
これができれば、パイ図は90度から始まります.
パイの図を上に移動してから始めなければなりません.
2.移動位置
cssの変換は位置を変えることができる.まず
回転で円を回転させるには、x軸で直径の長さ*2を下げます.
x軸方向に移動するのは90度回転しているので、垂直方向はx軸です.シフト:変換(回転(-90)translate(40))
3.比例の決定
stroke-dasharray="calc(n*円周/100)円周"
stroke-dasharrayでnの値を変更することでスケールを決定できます.
すべてのスケールを決定すると、次のように円グラフが描画されます.の共通値は
共通fill、stroke-width、transformをg要素に入れ、childに継承させることで、コードの重複を減らすことができます. を参照
http://tutorials.jenkov.com/svg/circle-element.html
YouTubeと勉強資料を見て、整理した内容を書きたいです.
1.円グラフを描く
<svg width="40" height="40" viewBox="0 0 40 40">
<circle
r="10"
cx="20"
cy="20"
fill="transparent"
stroke="tomato"
stroke-width="20"
stroke-dasharray="calc(40 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
/>
</svg>
これができれば、パイ図は90度から始まります.
パイの図を上に移動してから始めなければなりません.
2.移動位置
cssの変換は位置を変えることができる.まず
回転で円を回転させるには、x軸で直径の長さ*2を下げます.
x軸方向に移動するのは90度回転しているので、垂直方向はx軸です.
<circle
r="10"
cx="20"
cy="20"
fill="transparent"
stroke="tomato"
stroke-width="20"
stroke-dasharray="calc(40 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
transform="rotate(-90) translate(-40)"
/>
3.比例の決定
stroke-dasharray="calc(n*円周/100)円周"
stroke-dasharrayでnの値を変更することでスケールを決定できます.
すべてのスケールを決定すると、次のように円グラフが描画されます.
<svg width="40" height="40" viewBox="0 0 40 40">
<circle
r="10"
cx="20"
cy="20"
fill="transparent"
stroke="tomato"
stroke-width="20"
stroke-dasharray="calc(100 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
transform="rotate(-90) translate(-40)"
/>
<circle
r="10"
cx="20"
cy="20"
fill="transparent"
stroke="pink"
stroke-width="20"
stroke-dasharray="calc(80 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
transform="rotate(-90) translate(-40)"
/>
<circle
r="10"
cx="20"
cy="20"
fill="transparent"
stroke="yellow"
stroke-width="20"
stroke-dasharray="calc(50 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
transform="rotate(-90) translate(-40)"
/>
</svg>
共通fill、stroke-width、transformをg要素に入れ、childに継承させることで、コードの重複を減らすことができます.
<svg width="40" height="40" viewBox="0 0 40 40">
<g
fill="transparent"
strokeWidth="20"
transform="rotate(-90) translate(-40)"
>
<circle
r="10"
cx="20"
cy="20"
stroke="tomato"
strokeDasharray="calc(100 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
/>
<circle
r="10"
cx="20"
cy="20"
stroke="pink"
strokeDasharray="calc(80 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
/>
<circle
r="10"
cx="20"
cy="20"
stroke="yellow"
strokeDasharray="calc(50 * calc(2*3.14*10) / 100) calc(2*3.14*10)"
/>
</g>
</svg>
http://tutorials.jenkov.com/svg/circle-element.html
Reference
この問題について(SVG Pie Chartの描画), 我々は、より多くの情報をここで見つけました https://velog.io/@yejineee/SVG-Pie-Chart-그리기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol