2017-12-01 22 views
-1

画像に示されているような、電子温度と電子密度の2つの依存変数をプロットしたいと思います。 enter image description herematlabの2-Dプロットの独立変数に対する2つの従属変数のプロット?

Temperature = [1215.91011364417 1850.01332752710 396.195674732049 2.33318763425785 367.128785760659 1.12519845278610 1041.54280237670 308.561781429331 1403.27246459229 914.721893718804 1131.60868755734 1.12519845278610 614.410587642758 1.46315184861483 1639.85277962398 1.12519845278610 1298.88722417057 1031.22681754873 1436.00999906341 1668.58036010507] 
Density = [24649439880.5505 30331375517.0950 32468687222.5687 24308807814.9539 21341517237.4872 35308667370.9386 40665492231.7457 45722093820.9962 51868188863.5582 47190795319.6345 42040060503.1364 32476984617.6228 40532684718.7974 30900215185.8408 34036581740.8683 26599891957.8216 30350230720.2869 33729881290.5469 38973963811.7042 52412248580.7820] 

Height = [137.189200000000 137.125590000000 137.194550000000 137.350140000000 137.236270000000 137.254610000000 137.181080000000 137.180590000000 137.233510000000 137.257010000000 137.651370000000 137.182300000000 137.196620000000 137.224820000000 137.189600000000 137.249430000000 137.219690000000 137.130160000000 137.194210000000 137.246930000000]. 

すべての3つの変数が1x20です。

ご協力いただければ幸いです。 ありがとう

+1

「高さ」は、これらの最後の2つの変数を最初の変数に対してプロットする場合は、「密度」または「温度」と同じ次元でなければなりません。あなたの質問に示されているデータでは、 'Height'が' '4x1''と他の二つの変数が' '1x20''であるので、あなたはできません。 'Height'も' 1x20'にしたいと思っています。 – am304

+0

先生、高さも1x20であるべきですか? –

+0

すべての密度および温度サンプルについて、高さサンプルが必要です。すべてのベクトルの次元は同じでなければなりません。これは@ am304の意味です。 – Haz

答えて

2

このコードは、あなたが提供したデータで図を示しています。私は軸の2つのセットを作成し、それぞれは1つのデータを保持します。第2の軸のセットは、上にx軸を有し、透明である。

Temperature = [1215.91011364417 1850.01332752710 396.195674732049 2.33318763425785 367.128785760659 1.12519845278610 1041.54280237670 308.561781429331 1403.27246459229 914.721893718804 1131.60868755734 1.12519845278610 614.410587642758 1.46315184861483 1639.85277962398 1.12519845278610 1298.88722417057 1031.22681754873 1436.00999906341 1668.58036010507]; 
Density = [24649439880.5505 30331375517.0950 32468687222.5687 24308807814.9539 21341517237.4872 35308667370.9386 40665492231.7457 45722093820.9962 51868188863.5582 47190795319.6345 42040060503.1364 32476984617.6228 40532684718.7974 30900215185.8408 34036581740.8683 26599891957.8216 30350230720.2869 33729881290.5469 38973963811.7042 52412248580.7820]; 
Height = [137.18920 137.12559 137.19455 137.35014 137.23627 137.25461 137.18108 137.18059 137.23351 137.25701 137.65137 137.18230 137.19662 137.22482 137.18960 137.24943 137.21969 137.13016 137.19421 137.24693]; 

% Reorder data 
dat = cat(2,Height', cat(2,Density', Temperature')); 
dat = sortrows(dat); 

ax = {}; % holds both axes handle 

figure 
hold all 

% first axis, first plot 
ax{1} = gca; 
plot(dat(:,3),dat(:,1),'ko-') 
ax{1}.Box = 'off'; 
ax{1}.XLabel.String = 'Temperature'; 
ax{1}.YLabel.String = 'Height'; 
% second axis, second plot 
ax{2} = axes(); 
plot(dat(:,2),dat(:,1),'k-.') 
ax{2}.Color = 'none'; 
ax{2}.YTick = []; 
ax{2}.XAxisLocation = 'top'; 
ax{2}.XLabel.String = 'Density'; 
ax{2}.XScale = 'log'; 

% Overlap both axis 
ax{1}.Position = ax{2}.Position; 

% Clean it up a little bit 
ax{1}.XLim = [ 0 3000]; 
ax{2}.XLim = [1e10 5.3e10]; % You might want to change units here? 
関連する問題