2016-12-08 4 views
0

私はと考えるべきデータのプロットを持っています。はおおよそlog^2(n) = log(n)^2になります。横軸にn、縦軸にデータをプロットしたいが、水平軸をlog^2で拡大して、ほぼ直線になるようにしたい。今、log^2(例えば、semilogxを使用)の代わりにちょうどlogでこれを行う方法を知っていますが、私はlog^2のためにそれを行う方法がわかりません。ログを設定する^ 2 Matlabのスケール図

私はlogで再びスケールすることを望んで、logスケーリングを行い、同じことをやり直すためにset(gca、 'xscale'、 'log')をやってみました。残念ながら、それはしませんでした。 (私は信じている)'xscale'の唯一のオプションはlinearlogです。

私は通常のフォーラム(Google検索を介して)の周りを見てきましたが、私は解決策を見つけることができません。ちょうどlogのスケーリングの問題にはたくさんのことがあります。対数の基底を変更しています(私がしたいことではありません)。この問題に関するアドバイスは一番高く評価されます。ありがとう


説明を追加します。確率論(私がやることです)では、log(n)^2log^2(n)と書くのが一般的です。あなたは混合時間が「ログ二乗」であると話します。この表記は、nを削除しても、~ log^2と言うことができることを意味しています。私のデータはおおよそlog(n)^2だと私は信じています。

答えて

1

私はあなたがxscaleオプションについて正しいと思います。これらは、プロットで使用する通常の軸です。データを直線として表示する場合は、プロットするときにx値のlogを取ってデータを変更します。それに応じてxlabelを変更することを忘れないでください。

など。

plot([1,10,100],[3,2,1]) 
set(gca,'xscale','log') 
xlabel('x') 

plot(log10([1,10,100]),[3,2,1]) 
xlabel('log10(x)') 

EDITとして示すことができる。 あなたが代わりに手動でこのようなXTickXTickLabelを変更することができ

set(gca,'XTick',log10(x)) 
set(gca,'XTickLabel',{'10^0','10^1','10^2'}) 
+0

うん、これは私が出てくるために管理したいすべてですと。問題は、横軸の値が正しくないことです。表示される数値は、 'n'ではなくlog^2(n)です。とにかくありがとうございました –

+0

(私はあなたが誤解していると思いますので、私は説明を追加しました) –

+0

私はlog(log(n))を意味していましたが、より単純な例を使用しました。表示されている番号が気になる場合は、([link] https://se.mathworks.com/help/matlab/creating_plots/change-tick-marks-and-tick-labels-of-graph-1.htmlをご覧ください。 ) – Solstad

関連する問題