4

複数のデータ ファイルから散布図をまとめて、相互の相関関係を確認しようとしています。コードは次のようになります。

hold all
fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(1)
scatter(log(r),log(a),'r', '-');

fclose(fia);

fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(2);
scatter(log(r),log(a), 'g', '-');

fclose(fia);

など、次のデータ ポイントが同じグラフにプロットされます。

fia = fopen('data.txt');
A = fscanf(fia, '%f %f %f', [3 inf]);
t = A(1,:);
a = A(2,:);
r = A(3,:);

figure(1);
scatter(log(r),log(a), 'rx');


fclose(fia);

など。

しかし、Matlab で関数を実行すると、次のエラーが発生します。

Error using specgraph.scattergroup/set
The name 'linestyle' is not an accessible property for an instance
of class 'scattergroup'.

Error in specgraph.scattergroup (line 26)
  set(h,args{:});

Error in scatter (line 83)
        h = specgraph.scattergroup('parent',parax,'cdata',c,...

Error in Ratioincrease (line 11)
scatter(log(r),log(a),'r', '-');

散布グループを線グループに似たものにするにはどうすればよいですか?どうすれば適切に記述できますか?

4

3 に答える 3

7

scatter異なるマーカーを使用して表示するのに問題はないはずです。例えば:

load seamount
scatter(x,y,30,z,'s'); hold on
scatter(.999*x,1.001*y,30,z,'x'); hold on
scatter(1.001*x,.999*y,30,z,'+'); hold on

ここに画像の説明を入力

-タイプミスがあり、マーカーの種類として使用されていると思われます。使用できるマーカーの種類は次のとおりです。

  • '+' プラス記号
  • 'o' サークル
  • '*' アスタリスク
  • '.'
  • 'x' クロス
  • 'square'または's' 正方形
  • 'diamond'または'd'ダイヤモンド
  • '^' 上向きの三角形
  • 'v' 下向きの三角形
  • '>' 右向き三角形
  • '<' 左向き三角形
  • 'pentagram'または'p'五芒星(五芒星)
  • 'hexagram'または'h' 六芒星(六芒星)
于 2013-01-08T08:11:40.543 に答える
2

各行に 'hold on' と書く必要はありません。一度で十分です。したがって、このために次のように書くことができます。

load seamount
scatter(x,y,30,z,'s'); hold on
scatter(.999*x,1.001*y,30,z,'x'); 
scatter(1.001*x,.999*y,30,z,'+'); 

また、新しいデータ セットを描画して前のデータを消去したい場合は、このコマンドを実行する前に 'hold off' を 1 回書き込む必要があります。

于 2014-05-11T10:31:12.847 に答える