我想要可視化函數的峯值,並且我想要標記爲,它們與相關聯。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