csvデータをグラフ化し、その後のグラフのY軸の単位を変更する方法について
10 次查看(过去 30 天)
显示 更早的评论
分からず困っており、ご教授頂ければ幸いです。
現在複数のcsvデータをグラフ化し、それを重ね合わせることをしております。
重ね合わせを行い、なおかつそれらを同じ色のグラフで表示しております。
以下コードです。(2行n列のcsvデータで、1行目を抜き出しております)
list = dir('*.csv');
figure
hold on
for ii = 1:length(list)
a = readmatrix(list(ii).name);
plot(a(1,:),'b');
上記コードで添付画像のようなグラフを作成しました。
2つご教授頂きたい点があります。
●1点目
・グラフのY軸の単位が2.5×10(-4)(10のマイナス4乗)となっておりますが、
もともとはこのデータは”μV”が単位であり、もとデータと照らし合わせると、グラフは"V"で再現されております。
グラフのプロパティインスペクターを見てみたのですが、単位の変更が分かりませんでした。
2.5×10(2)(10の2乗)などのように変更は出来るのでしょうか
●2点目
・今回重ね合わせたグラフを全て青色にしております。
例えば、1000μV以下のものは赤などと、Y軸の値によって色分けを行うことは可能でしょうか。
上記をご教授頂ければ幸いです。
宜しくお願い致します。
0 个评论
采纳的回答
交感神経優位なあかべぇ
2022-12-15
・1点目
plotは単位を持っていません。そのため、readmatrixで取得したデータを10^6倍するしか手はないかと思います。
・2点目
Y軸の値が全て1000μV以下ならば全体の線を赤にするなどの条件判定は可能です。
A = sin(linspace(0,3*pi,20)) .* 1e-9 + [0; 1e-9; 5e-9]; %テキトーにプロットするデータ作成(μV)
figure;
hold on;
for idx = 1 : size(A, 1)
microV = A(idx, :);
V = microV .* 1e6; % μVからVへ変換
if all(V <= 0.001) % Vの値全てが1000μV以下であるか判定
color = 'red';
else
color = 'blue';
end
plot(V, color);
end
2 个评论
Hernia Baby
2022-12-15
ちなみにLineのプロパティを使うともう少しコンパクトになります
A = sin(linspace(0,3*pi,20))'.* 1e-9 + [0 1e-9 5e-9];
num = find(min(A) > 0)
% 今回は最小値が0より上のものを赤色に変更
c = plot(A,'b');
for ii = num
c(ii).Color ='r';
end
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!