csvデータをグラフ化し、その後のグラフのY軸の単位を変更する方法について
21 views (last 30 days)
Show older comments
分からず困っており、ご教授頂ければ幸いです。
現在複数の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 Comments
Accepted Answer
交感神経優位なあかべぇ
on 15 Dec 2022
・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 Comments
Hernia Baby
on 15 Dec 2022
ちなみに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
More Answers (1)
See Also
Categories
Find more on ライン プロット in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!