質問: 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 ``` たとえば、IPアドレスの14 milionsが1パケット、7 milion 2パケット... 1 ipアドレスが6600パケットを送信したことを示しています。... 1 ipアドレスが19000パケットを送信しました。あなたが見ることができるように、両方の軸の値はかなり高いので、対数スケールなしでプロットすることはできません。 私が最初に試したのは、このリストをプロットすることでした。なぜなら、gnuplotはボックスを使って両方の軸でlogscaleを設定していたからです。結果は理解できるものの、それほど適切ではありません。実際には、ボックスはx軸上を右に行くほどますます薄くなっています。なぜなら、明らかに、1〜10よりも10〜100のポイントが多いからです!だから二十年後には本当の混乱になった。
回答: GnuPlotのログログスケールでのプロットは、このスレッドの他のポストとは逆に完全に実行可能です。 コマンド `set logscale` を使って、GnuPlotのログログスケールを設定することができます。 次に、x軸とy軸の両方に正(厳密には非ゼロ)の値を持つファイルがあると仮定します。たとえば、次のファイルは有効なファイルです。 ``` 1 0.5 2 0.2 3 0.15 4 0.05 ``` ログログスケールを設定した後、次のコマンドでファイルをプロットすることができます: `plot "file.txt" w p` もちろん、file.txtはファイルの名前です。このコマンドは、ポイントで出力を生成します。 また、プロットボックスは厄介であり、おそらく推奨されないことに注意してください。最初にx-rangeを `set xrange [1:4]` という形式のコマンドで制限してから、ボックスでプロットしなければなりません。それ以外の場合は、x-rangeが未定義の場合はエラーが返されます。私は、この場合、プロットには適切なx値のためにいくつかのボックスにサイズlog(0)が必要であると仮定していますが、これは当然定義されていないため、エラーが返されます。 それがはっきりしていて、他の人にも役立つことを願っています。