人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

数学の問題です。

http://book.akahoshitakuya.com/
上記ページの真ん中のところに緑色の棒グラフが出てきます。

これのY軸の値の算出方法を教えてください!


例えば「読書ページ数」というブラフの場合
※現時点の数値

最小値:30571517
最大値:35739014
y軸のはじめは31000000
各マスの値は1000000で
y軸の終わりは36000000まであります。

知りたいのはこの各マスの値と
y軸のはじめの数値の算出方法です。
※多分各マスの値が決定すればy軸のはじめも自然に決まるのか?

最大値と最小値から算出していると思うのですが
どうやって算出しているのでしょうか?

あと上のページのグラフだと
y軸のマスの数は状況に応じて変わってくると思うのですが
今回はマスの数は「9」個と固定します。

よろしくお願いいたします!


●質問者: akahoshitakuya
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:グラフ ブラフ 数学 緑色 自然
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● syntaxerror
●23ポイント

考え方は色々だと思いますが、すぐに思いつくのは

  1. 最小値の上位2桁以下で切り捨ててY軸の最初の値(Y0)にする。
  2. 最大値の上位2桁以下で切り捨ててY0との差(Yd)を計算する。
  3. Ydを8(=マスの数(9)-1)で割って暫定的な各マスの値(D1)とする。
  4. マスの値を切りの良い数字にするためにD1の上位1桁か2桁で切り上げて最終的なマスの値Dを決める。

でしょう。

この場合、最大値の上の方により大きな空間が空いてグラフの見た目のバランスが良くない場合がでてくるので最大値と最小値の平均値を求めて上位切捨てした値をY軸の中央の値になるように計算するといいですね。

マスの数が9個だと平均値は5個目のマスの真ん中がくるように計算すればいいです。

◎質問者からの返答

ありがとうございます。

1、2の部分ですが上記URLにあるグラフの右側ですと

上位3桁まで数字が出ているんですよね。

http://book.akahoshitakuya.com/u/1

ここに出てくるグラフもそうですね。

こう考えるとやはり最大値と最小値の差を考慮して出してるのかなー

と思うんですよね。

例えば

最小値:35739004

最大値:35739014

ともし差が10しかなかったら

上位2桁以下を切り捨てると

非常にまっすぐなグラフになる気がします。

うーん


2 ● きゃづみぃ
●23ポイント

Y軸の0の地点は、30000000ですね。

グラフの書き方が

31 000

__ 000

となっています。

つまり、1000単位、1000 000単位として 処理しているものと思われます。

最小値:30571517を 1000000で割ると、30.5

最大値:35739014を 1000000で割ると、35.7

最小値は 切捨で 30

最大値は 切り上げで 36

とし、

これを 6で割ったとき、その値の最初の値が 1か5に切り分けて 単位としているものと思われます。

1> 5<=のときは 5

5< 1<=のときは 1


マスの数が 9ならば

0.666なので 1単位とし範囲は 30000000から37000000 とすればいいかと思います。

◎質問者からの返答

ありがとうございます。

数値は時間とともに変更しますのできっと変わってしまったのでしょう。

質問の仕方も悪かったのですが

数式で教えていただけますでしょうか?

また上のグラフは一つの例で

http://book.akahoshitakuya.com/u/1

とかにもありますのでそちらのグラフでも当てはまる

数式をお願いいたします!


3 ● syntaxerror
●22ポイント

2回目になります。

コメント欄を開けてもらえるとフォローしやすいです。


>ともし差が10しかなかったら

>上位2桁以下を切り捨てると

>非常にまっすぐなグラフになる気がします。


グラフを書く目的によってはそれでも良いわけです。

グラフで見たいのはデータの傾向を見たいのですから上位2桁以下の変化しかない現象であればそれは全体から見てまっすぐなのでそれが表示できれば充分です。

逆に大して変化が無いのにちょっとの変化を拡大して見せていかにもこういう傾向がありますという言わば詐欺的なテクニックもあります。

よくテレビでフリップを使ってこういった誘導的な説明が見受けられますね。

http://takagi-hiromitsu.jp/diary/20070128.html#p01

◎質問者からの返答

いえ、そういうグラフの目的はここでは問題ではなくて

このサイトで使われているグラフがそのようになっていて、

(つまり「逆に大して変化が無いのにちょっとの変化を拡大して見せていかにもこういう傾向がありますという言わば詐欺的なテクニックもあります。」を実現している)

それをどういう風に算出しているのかが知りたいのです。

おそらく上位2桁と決定すると簡単になると思うんですが

ここではそれ自体もおそらく最大値最小値を元に自動的に算出しています。

数学的にこれをどのように算出しているのかが知りたいのです。


4 ● Mook
●22ポイント

表示範囲全体でグラフの変化を表示したいのであれば、

最大値と最小値の差をとりそれを元に軸の単位を割り振るようにするのが基本的な考え方

だと思います。



今回の例だと、

最小値 30,571,517
最大値 35,739,014
差分 5,167,497

これをY軸上9に分割したいのであれば、

5,167,497 / 9 = 574,166.333...

これを切り上げると 1,000,000 になるので、中央値が中央になるようにするとY軸は

28,000,000?37,000,000 を 1,000,000 刻みでとることになります。


軸の単位を10のn乗にせず、今回の場合でしたら 600,000 ? 900,000 刻み等でとることも

可能ですが、そのあたりはグラフをどう表示しするかのパラメータとして指定できるように

すればよいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ