2010-11-23 27 views
9

私は線の色は、1サイクルをしてきた後、自動的に次のスタイルに変更する線のスタイルを設定するにはどうすればよいMATLABでプロットのデフォルトの線種を設定するにはどうすればよいですか?

temp=0.5*rand(500,10); 
[~,offset]=meshgrid(1:500,1:10); 
figure(101) 
plot(temp+offset') 

をプロットしたいデータの配列を持っていますか?

この例では、8行目から10行目までに異なる行スタイルを使用したいと考えています。私は手動で行うことができますが、デフォルトのオプションをどこかに設定することができれば、Matlabにそれをしてもらいたいです。

答えて

15

最初の傾きは、データをプロットする前に軸の'LineStyleOrder' propertyを変更することです。残念ながら、PLOTのようなハイレベルのプロット関数は、プロットする前に軸の'LineStyleOrder' propertyをデフォルト値'-'にリセットします。 1つの解決策は、root levelのすべての軸オブジェクトによって使用されるchange the default valueです。例:

set(0,'DefaultAxesLineStyleOrder',{'-',':'}); 

最初に実線を使用し、次に点線を使用してから、必要に応じてプロットごとに繰り返します。ルートでもデフォルト値を変更することによって、高度なプロット関数を持つカスタム'ColorOrder' propertyを使用することもできます。次の例では、PLOTサイクルのみで、赤、緑、青の間ので、それを変更します:

set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]); 

代わりに異なるラインスタイルを心配するの、あなたの問題の別の解決策は、より多くを持っているために、デフォルトの色の順序を設定することですちょうど7色。

ルート上のデフォルトのプロパティ値が設定されると、MATLABが終了するまでそのまま維持されます。再オープンすると、デフォルトのプロパティ値が工場出荷時の値に設定されます。 CLEARのようなコマンドは、デフォルトのプロパティを工場出荷時の値に戻しません。あなたがのNextPlot propertyを変更した場合、てオブジェクトを軸すべてを使用するデフォルトのプロパティを変更する別の代替として、

set(0,'DefaultAxesLineStyleOrder','remove'); %# Sets the default back to '-' 

:代わりに、あなたはそうのように、ユーザが定義した値を元に戻すには'remove'にデフォルトのプロパティ値を設定する必要があります個々の軸をに変更する場合は、'replace'を入力して'LineStyleOrder'または'ColorOrder'のプロパティを任意の値に変更することができ、PLOTはデフォルトにリセットされません。例えば、これはまたあなたが望むものでなければなりません:

+0

したがって、OPがスタイルを 'r - '、 'g - '、 'b - '、 'r:'、 'g : '、' b: ''、' 'ColorOrder''を' [1 0 0; 0 1 0; '、' - '、': '、': '、': '} 'のように、LineStyleOrderを使用して、 – Jonas

+3

@Jonas:実際には、PLOTは最初に最初のラインスタイルで1回、次に2番目のラインスタイルで1回だけ循環するので、LineStyleOrderを '{' - '、 ':'}'に設定する必要があります。言い換えれば、色は内側のループ、外側のループの線のスタイルで循環します。 – gnovice

+0

私のためにこれをクリアしてくれてありがとう! – Jonas

関連する問題