• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:chart.jsでx軸の表示値をカスタマズする方法)

chart.jsでx軸の表示値をカスタマイズする方法

このQ&Aのポイント
  • chart.jsで水平横棒グラフ使ったピラミッドチャートのx軸の片方の系列の値をカスタマイズする方法について教えてください。
  • ticksのコールバックを定義して、左右違う系列の場合でも左側の値を+表示に変更することが可能です。
  • コード内の男性のデータを+表示に変更する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

xAxesのticksオプションのcallbackを下記のように指定すると、X軸を中央から両側に向かって増加するようにできます。 xAxes: [{ stacked: true, ticks: { callback: function (v){ return Math.abs(v) } } }] 仕組みとしては単純で、軸のすべての値を絶対値として置き換えています。

turu575
質問者

お礼

早速の回答ありがとうありがとうございます。なるほど複数系列の有無に関わらず絶対値を指定すればいいのか。系列毎に指定しなければいけないかと思っていた自分が情けない。 ついでに伺いますがy軸の表示部分を中心に左右に振り分ける方法についてですがExcelでは簡単に出来るのですがchart.jsでは左右別方向の水平棒グラフを並列に並べる等の面倒な方法をとらなければいけないでしょうか。

その他の回答 (1)

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.2

No.1のお礼コメントに対して回答します。 y軸の表示部分を中心(y軸を2つの系列の間に挟む感じ)にするのは1つの水平棒グラフでもできるかもしれませんが、複雑化してカスタマイズはしづらくなるように思います。棒の上に階級幅を表示するのであればできそうです。 棒グラフはあくまで0を起点に値を積み上げるため、各系列でその起点を分離したければ別々のグラフにするのが賢明です。2つの水平棒グラフを用いる場合でも共通する処理が多いため、その実装の方がかえってやりやすいのではないでしょうか。

turu575
質問者

お礼

いつも的確な回答有難う御座います。軸の表示エリアを任意の位置に指定できないかと思いましたが、ご指摘の 複雑化してカスタマイズはしづらくなる・・・別々のグラフにする・・・その実装の方がかえってやりやすい との事を踏まえ試してみたいと思います。なお他に何か良いアイデアがありましたら再度ご教授願います。

turu575
質問者

補足

お礼投稿した後でchart.jsのドキュメントに チャート内の軸の位置。 可能な値は以下のとおり 'top'、'left'、'bottom'、'right' とあることに気づきました。この通りならば上記の4通り以外の任意の位置を指定するのは無理みたいと思われます。余計な質問をして申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう