2017-05-20 11 views
-1

x = 0をy軸にします。今は動作しません。私は、このコマンドを作ってみましたが、それは私のコードy軸をx = 0にする方法は?

set(gca, "yaxislocation", "zero")

が機能していません。

labels = [0 128 256 512 1024 2048]; % Provide your labels here 
ylabels = [0 1 2 4 8 16 32]; % Provide your labels here 

hold on; 

% system1 durations in seconds 

plot (3, 1 ,'o' ,"markersize", 12); 
plot (4, 1, 'o' ,"markersize", 12); 
plot (5, 30, 'o' ,"markersize", 12); 
plot (6, 150, 'o' ,"markersize", 12); 

% system2 durations in seconds 

plot (3, 2 ,'x' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (4, 2, 'x' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (5, 10, 'x' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (6, 30, 'x' ,"markersize", 12, "markerfacecolor", "auto"); 

% system3 durations in seconds 

plot (3, 2 ,'d' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (4, 7, 'd' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (5, 18, 'd' ,"markersize", 12, "markerfacecolor", "auto"); 
plot (6, 22, 'd' ,"markersize", 12, "markerfacecolor", "auto"); 

%set(gca, 'xtick', x); % Change the x-axis so only the right amount of ticks remain 
%set(gca, 'xticklabel', labels) % Change the labels to the desired ones 
%set(gca, 'yticklabel', ylabels) % Change the labels to the desired ones 
%set(gca, "xaxislocation", "zero") 
set(gca, "yaxislocation", "zero") 
%axis([0,1, miny, maxy]); axis "autox"; 

私は指数スケールをy軸とx軸の両方に表示しようとしていますが、不可能です。私の結論は、オクターブは役に立たず、gnuplotもうまくいかず、手動でグラフを描く方が良いということです。 matlabもオクターブも指数スケールのような単純なものを作ることはできませんし、それが所属する場所にゼロを置くことさえできません。

+0

[このバグレポート](http://savannah.gnu.org/bugs/?47966)によると:「ゼロ」オプションは、gnuplotツールキットでのみ有効です.FLTKやQtなどのOpenGLグラフィックスツールキットそれを実装しないでください。 – TroyHaskin

答えて

1

これはチェンジセットhttp://hg.savannah.gnu.org/hgweb/octave/rev/1ddb53b6ad30で追加され、すでにGNU Octave 4.2.0リリースに含まれています。

あなたは使用されるバージョンに言及されていないか、またはあなたが警告またはエラーメッセージを取得する場合、私はちょうどあなたが古いバージョン

Editを使用している推測することができるので:(xのOpenGLサポート場合、私は本当にわからないんだけど/ y)axislocationは既に4.2.0の一部です。現在の開発ソースで動作し、4.2.0で動作することを確かめることができます。graphics_toolkit gnuplot

+0

私はバージョン4.0.0を使用しています。 –

+1

2015年にリリースされたバージョンを使用している理由は何ですか? – Andy

+0

新しいものはインストールできません。手動でダウンロードする必要があります。私はUbuntu 16.04を使用しています。 –

1

x = 0をy軸にします。

私には、x軸の0からプロットを開始しようとしているような音です。 あなたが探しているのは、x軸の制限を設定する関数です。

xlim関数を使用するか、より一般的にはaxisを使用して、x軸とy軸の両方の制限を同時に設定できます。 the octave documentation page on thisを参照してください。

など。作るために、x軸は0から開始し、100に上がる:yaxislocationは完全に異なる何かをすること

xlim([0,100]); 

は注意してください。あなたが代わりにやろうとしていることとは対照的に、y軸とそのラベルは常に、これはグラフの途中であってもx = 0の行に表示されるようであれば 、https://uk.mathworks.com/help/matlab/examples/controlling-axis-location.html?searchHighlight=yaxislocation&s_tid=doc_srchtitle

を参照してください。たとえば、図の左側または右側に固定してから、そのリンクの指示に従ってください。基本的に:

set(gca, 'yaxislocation', 'origin'); 

(注:値「ゼロ」このパラメータの有効な値であるために使用されるが、これは値同じことを「起源」の賛成で廃止されました)。

関連する問題