ライブスクリプトで一度生成したプロットを再度プロットする方法
4 ビュー (過去 30 日間)
古いコメントを表示
たとえば,
fig=plot(1:10)
とプロットすればライブスクリプト上でプロットされます.(figに代入する必要はないですが)
ここで同じものをもう一度プロットする最も単純な方法はもう一度同じコードを入力することですが,
これよりコードの多い複雑なプロットの場合,コードの幅を取るので美しくありません.
たとえばここで変数figを用いて再度プロットできないでしょうか?
figにはプロットのためのデータが揃っているためできると考えたのですが,実際に行う方法が見つかりませんでした.
あるいは,figを用いて簡単に再度プロットできないとしたら,他に簡単な方法があれば教えて頂きたいです.
0 件のコメント
回答 (1 件)
Shunichi Kusano
2020 年 5 月 13 日
copyobj関数が使えそうです。
2 件のコメント
Shunichi Kusano
2020 年 5 月 18 日
返事が遅くなりすみません。
追加のコードは必要になるかと思います。ご参考までに下記にサンプルコードを載せます。
close all
%% コピー元となるグラフィックオブジェクトの作成
fig = figure;
plot(1:300,[1:300]*0.01); % オブジェクト1
hold on;
plot(1:300,sin([1:300]*0.1),'r.'); % オブジェクト2
%% 新しいfigureにコピーして表示
ax = gca; % コピー元のaxis
newfig = figure; % コピー先のfigureウィンドウ
new_ax = axes; % コピー先のaxis
for i = 1:numel(ax.Children)
copyobj(ax.Children(i), new_ax); % コピー
end
参考
カテゴリ
Help Center および File Exchange で グラフィックス出力のターゲットの指定 についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!