de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
 markusian
markusian
質問

gnuplot による対数スケールのヒストグラム

gnuplot を使って、両軸に対数スケールのヒストグラムを描かなければなりません。ビンは log10 で等間隔に並んでいる必要があります。y 軸で対数スケールを使用することは問題ありません。主な問題は x 軸のビンを作成することです。例えば、log10で10のビンを使う場合、最初のビンは[1],[2],[3]......[10 - 19][20 - 29]......[100 190] といった具合になるでしょうか?ネットで検索してみましたが、実用的な解決策は見つかりませんでした。もし gnuplot でそれを実現するのがあまりに面倒なら、 他のソフトウェアや言語を提案してもらえませんか。

誰かが質問したので、私が何をしなければならないか、 より具体的に説明します。私はこのような (巨大な) リストを持っています。

1   14000000
2   7000000
3   6500000
.
.
.
.
6600    1
8900    1
15000   1
19000   1

例えば、1400万個のIPアドレスが1パケットを送信し、700万個が2パケットを送信し......。1つのIPアドレスが6600パケット、....1つのIPアドレスが6600パケット、...、1つのIPアドレスが19000パケットを送信しています。見てわかるように、両軸の値はかなり高いので、対数スケールでないとプロットできません。

高速に処理する必要があったので、最初に試したことは、このリストをそのまま gnuplot で描画し、両軸にボックスを使って logscale を設定することでした。結果は理解できるものでしたが、あまり適切ではありませんでした。実際、x 軸の右側に行くに従ってボックスはどんどん薄くなっていきました。というのも、明らかに10-100の方が1-10よりもポイントが多いからです!そのため、2番目の10年後には本当に混乱してしまいました。

3 2011-10-27T18:41:29+00:00 3
 markusian
markusian
編集された質問 28日 10月 2011 в 3:34
プログラミング
gnuplot
histogram
logarithm
bins
 Woltan
Woltan
28日 10月 2011 в 7:55
2011-10-28T07:55:42+00:00
さらに
ソース
編集
#13686926

両軸を対数変換してヒストグラムを描こうとしたら、gnuplot がエラーになりました。

X の対数スケールはヒストグラムのプロットと互換性がありません。

つまり、gnuplot はヒストグラムの x 軸の対数スケールをサポートしていないようです。

5
0
 MightyMouse
MightyMouse
27日 12月 2012 в 11:26
2012-12-27T23:26:58+00:00
さらに
ソース
編集
#13686928

GnuPlot で対数スケールでプロットすることは、このスレッドの他の投稿とは逆に、完全に可能です。

GnuPlot では set logscale というコマンドで log-log スケールを設定することができます。 そして、x 軸と y 軸の両方が正の値 (厳密に 0 でない値) であるファイルを持っていることが前提になります。例えば、以下のようなファイルは有効なファイルです。

1 0.5
2 0.2
3 0.15
4 0.05

log-logスケールを設定した後、コマンドでファイルをプロットすることができます。 plot "file.txt" w p` ここで、file.txt はもちろんファイルの名前です。このコマンドは点での出力を生成します。

また、ボックスのプロットは厄介で、おそらく推奨されないことに注意してください。まず、set xrange [1:4] というコマンドで x-range を制限し、それからボックスで描画しなければなりません。そうしないと、x-range が不定であるときにエラーが返されます。この場合、plot は (適切な x 値に対して) いくつかのボックスのサイズが log(0) であることを要求していると思いますが、これはもちろん未定義であり、したがってエラーが返されるのです。

これが明確であり、また他の人の助けになることを願っています。

 MightyMouse
MightyMouse
編集した答え 27日 12月 2012 в 11:32
4
0
解決策・回答
 Blender
Blender
30日 10月 2011 в 2:23
2011-10-30T02:23:01+00:00
さらに
ソース
編集
#13686927

Python]2 で Matplotlib を試したことがありますか?Matplotlibは本当に素晴らしいプロットライブラリで、Pythonのシンプルな構文と一緒に使えば、非常に簡単にプロットすることができます。

import matplotlib.pyplot as plot

figure = plot.figure()
axis = figure.add_subplot(1 ,1, 1)
axis.set_yscale('log')

# Rest of plotting code
-1
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 1週間前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 2週間前
JA
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属