既存の複数のグラフを1つのグラフにまとめる
241 ビュー (過去 30 日間)
古いコメントを表示
採用された回答
Kenta
2020 年 1 月 1 日
figure
for i=1:size(x1,1)
subplot(3,2,i)
bar(x1(i,:),y1(i,:));hold on
end
こんにちは、データを添付していただきありがとうございます。
info=struct2table(dir);
name={info.name};
figure;
for i=3:numel(name{1})
hfig = open('LT12202019002 Ch02 unit a ftr1.fig');hold off
x1(i-2,:) = hfig.Children.Children.XData;
y1(i-2,:) = hfig.Children.Children.YData;
end
figファイルの添付で、データが直接受け取れなかったので、下のほうのコードでデータを取得しています。
上のコードでは、barの後のコマンドが、Saitoさまのものとは異なると思いますが、適宜、変更をお願いします。
複数のプロットはhold onとすれば、前のプロット情報を保持しながら、さらに新たなプロットを作ることができます。
さらに余白をちいさくしたい、などがあれば、このMatlab Answersの検索欄から、キーワード検索すれば出るので、いろいろとカスタマイズしてもらえると幸いです。
![result.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/257769/result.jpeg)
0 件のコメント
その他の回答 (2 件)
Saito
2020 年 1 月 4 日
1 件のコメント
Kenta
2020 年 1 月 5 日
for i=1:(グラフの数)
subplot(9,1,1)
bar(x1(1,:),y1(1,:));%x1の部分を適宜変更する
hold on
xlim([-250 800]);
xticks(-2500:100:800);
ylim([0 100]);
yticks(0:50:100);
end
上のように、グラフの数だけfor文で繰り返せばいいと思います。
今回は、質問者さまが、生データではなく、figファイルを添付されていたので、figファイルから生データの値を取り出すために関数openで図を開いてから棒グラフの値を取得しています。実際は、何かしらの変数やセンサーデータなどから値を取得しているはずで、x1の代わりにそちらの変数に書き換えていただければと存じます。
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!