質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

7306閲覧

Chart.js で単位の違うグラフを同一上に

poliphilus

総合スコア150

canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/10/31 09:26

Chat.js で棒グラフ (Bar Chart) を表示させているのですが、
単位が極端に違う2種のグラフを同一のグラフ内に
表示させようとしています。
具体的には受注数と受注額といったヤツで、
かたや100件、かたや100万とかになるので、
受注数の方は完全に見えなくなります(笑)。
受注数の方を受注額に合わせて数千~数万倍にすればいいのですが、
実際の数値とは違ってしまいます。

違う単位軸の複数のグラフを同一グラフ上に
表示する方法をどなたかご存じないですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

2軸にすると良いのではないでしょうか。

投稿2015/10/31 10:19

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poliphilus

2015/11/01 07:05

jqplot は2つの軸を元々持ってるようですね! これでいけそうな気がします。 ちょっと明日以降になりそうですが、 試してみます。
poliphilus

2015/11/04 01:05

返信が遅れてすみません。 やっと2軸のチャートが描画できることを確認できました。 x軸のラベルに「1月、2月...」と入れていた所、 描画にバグが出ました。それで遅れてしまいました。 数字のみにすると大丈夫です。 あと jqplot 本体だけではダメで、 たくさんのオプションを読み込まねばなりません。 これがちょっとう~ん…です。 ともあれ、ありがとうございました。 ちなみ公式ドキュメントでは、 以下のページの一番下の例に出ています。 http://www.jqplot.com/examples/axisLabelsRotatedText.php
guest

0

ドキュメント を見る限り、オプションは用意されていないようですね…

好むか好まざるかはお任せしますが、自分だったら…

金額の方を 10000分の1 でグラフを描画して、configuration options の tooltipTemplate をいじって、n(万円) という表記にしちゃうかな…。

投稿2015/10/31 09:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poliphilus

2015/11/01 06:51

ご回答ありがとうございます。 最悪はコレですね…。
guest

0

c3ではダメですか?こちらは標準で複数の棒グラフや、折れ線グラフに対応しています。

投稿2015/10/31 09:29

horse_n_deer

総合スコア452

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poliphilus

2015/10/31 09:35

回答有り難うございます。 Chart.js でも複数のグラフには対応しています。 ただ、それぞれの数値に違いが大きすぎる場合、 最大値が大きい方に設定されてしまうので、 小さい方のグラフはほとんど見えなくなるんです。 これをどうにかしたい、ということです。
horse_n_deer

2015/10/31 09:40 編集

分類ごとに最小値と最大値を設定しておき、実際の数値ではなく、その設定値の相対値で標準化すれば、グラフが均等に棒グラフを描けるように思えます。
poliphilus

2015/10/31 09:40

ふたたびありがとうございます。 ちょっと c3 のドキュメントをよく読んでみます。
horse_n_deer

2015/10/31 09:42

グラフに使う数値とは別に、ラベルの表示に関数を挟めることがc3は出来たはずなので、試してみてください。
horse_n_deer

2015/10/31 09:53 編集

と、済みません。chartjsにもラベルを整形するオプションがありますね。よく読んでから回答するべきでした。 http://stackoverflow.com/questions/20371867/chart-js-formatting-y-axis 追記: 少しChartjsを試してみましたが、ラベルの整形は関数を挟んで出来ても、データ元の番号は特定できないようです。関数の第一引数に値だけ渡ってきました。 http://jsfiddle.net/59naga/vy0yhd6m/265/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問