関数のピークを視覚化したいと思います。より上のマーカーが表示されるようにしたいと思います。が関連付けられています。MATLAB/Octaveプロットマーカーは、ライン上ではなくラインの上にあります。
私は質問が正しくマーカーを視覚化するだけの方法です、私はすでにピークを有する最小の例を製作:
y = [0.1 0.3 10.0 1.0 0.5 0.1 24.0 0.6 0.1 0.2]
x = (1:length(y))
plot(x,y);
hold on;
peaks = [3 7];
plot(x(peaks), y(peaks), 'v', 'MarkerSize', 24);
print('-dpng', 'example.png', '-S640,480');
をので、結果として、マーカーは、このような行を中心に表示されます。
私が望む結果は慎重にこのようにパラメータOFFSET
を調整することによって達成することができます。
plot(x(peaks), y(peaks)+OFFSET, 'v', 'MarkerSize', 24);
次の図に示すように、この正確な例では、OFFSET=2.56
はエクスポートされたpngでは機能しますが、インタラクティブなプロットやベクターグラフィックスの書き出しでは間違っています。
誰もが手動で裁判/エラーをやってすることなく、この結果を取得する方法をお勧めしますか?
現在、私はgnuplotでOctaveを使ってlatex + tikzにエクスポートしています。ソリューションがあればうまくいくはずです。
私の実際の(より複雑な)使用例では、同じ図形に複数の線をプロットしていて、yの制限が変わるので、オフセットは簡単に計算できません。 yの限界。
編集:さらに、semilogxプロットを使用しているため、図の中のx/y軸スケールの線が歪んで見えます。
少し速かった; –
ちょっと... :) – Adiel
これはオクターブ+ gnuplotで動作し、すでに役立っていますが、yとxの制限の変更によって三角形の縦横比が変わるようになりました。実際の使用例では、対数プロットを使用しているので、完全に歪んでいます。他のアイデア? ...編集:いいえ、私はまた、指数関数的にプロットされ、軸に応じてスケールされることができると思う、ちょっと複雑になります... – bluesceada