x軸の情報を追加したい
21 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
上の図ようにx軸が時間のデータに高度の対応も分かるように高度も表示させたいのですが出来なくて困っています。
複数の x 軸と y 軸があるチャートの作成も試したのですが、これは2つのデータの同じ図に表示するものであったため、それぞれ表示させると時間と高度にずれが生じてしまいました。
よろしくお願いします。
0 commentaires
Réponse acceptée
Hiroki Okawa
le 14 Nov 2019
time = [78, 80, 82];
altitude = [94, 96, 98];
figure;
plot(time, altitude, '-o')
xlabel('時間 [sec]')
ylabel('高度 [km]')
grid on
でいかがでしょうか。 これで希望と異なる場合、どんな目的でどんなグラフを作成したいのか、を可能な範囲で教えていただけると幸いです。
6 commentaires
Hiroki Okawa
le 15 Nov 2019
なるほどわかりました。
あくまで 高度 は、 時間 に対応している、ということですね。(こちら側の回答に近い)
y = 0 : 2 : 8; % 移動距離
t = 78 : 2 : 86; % 時間
a = [94, 95, 99, 105, 112]; % 高度
index = 1 : length(t); % プロット用のインデックス
figure;
[~, ax] = plotmultix(t, y, index, y);
xticks(ax(2, 1), index) % 目盛りの位置はインデックスとする
xticklabels(ax(2, 1), string(a)); % 目盛り表示のみaのデータを用いる
xlabel(ax(1,1),'時間 [sec]');
xlabel(ax(2,1),'高度 [km]');
ylabel('移動距離 km]')
grid on
しかし、このままですと高度は等間隔ではないにもかかわらず、下記のように小目盛りが等間隔に表示されています。plotmultix関数はaxesの扱いが特殊なようで、小目盛りの制御に関して私の調べた限りでは見つかりませんでした。
Plus de réponses (1)
Yoshio
le 14 Nov 2019
2 commentaires
Hiroki Okawa
le 15 Nov 2019
Modifié(e) : Hiroki Okawa
le 15 Nov 2019
plotmultixを使った例を簡単ですが作りました。
y = 0 : 2 : 8; % 移動距離
t = 78 : 2 : 86; % 時間
a = 94 : 2 : 102; % 高度
figure;
[~,ax]=plotmultix(t,y,a,y);
xlabel(ax(1,1),'時間 [sec]');
xlabel(ax(2,1),'高度 [km]');
ylabel('移動距離 km]')
grid on
ただし、この関数はnanmin, nanmax関数を用いるため Financial Toolbox 或いは Statistics and Machine Learning Toolbox を持っていない場合は、自力で実装するか
271行目: nanmin → min
271行目: nanmax → max
と変更(対象データにNaN値がない場合)する必要があります。
Voir également
Catégories
En savoir plus sur Calendar dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!