質問

私がプロットするために使用している3つの変数はすべてサイズのマトリックスです 1x1x100. 。このコード行を使用してプロットしています。

hold on; 
for i=1:100
    plot3(R_L(:,:,i),N_Pc(:,:,i),CO2_molefraction_top_of_window(:,:,i),'o');
    xlabel('R_L');
    ylabel('N_P_c');
    zlabel('CO_2')
end

しかし、私は3番目の軸を取得していないため、3番目の変数を取得しています CO2_molefraction_top_of_window プロットで。どこが間違っているのかわかりますか?

上記の質問に加えて、同じテーマでは、使用して描画できる3次元プロットのように4次元プロットをプロットできるオプションがあるかどうかを知りたい plot3?

役に立ちましたか?

解決

ただのメモ---あなたはする必要があります xlabel ylabel zlabel 一度コマンド(ループの外側)。

また:

  • あなたのマトリックスがある理由はありますか 1x1x100 ただの代わりに 100x1 また 1x100?それらを2Dに変更すると、1回のヒットでプロットを行うことができるためです。
  • 「3番目の軸の欠落」とはどういう意味ですか?私があなたのコードを実行するとき(またはあなたが再現可能な例を提供しなかったので、私が得ることができる限り近くにあるとき)、私は 行う 3番目の軸を取得します:

.

X = rand(1,1,100); % 1x1x100 X matrix
Y = rand(1,1,100); % 1x1x100 Y matrix
Z = rand(1,1,100); % 1x1x100 Z matrix
% Now, we could do a for loop and plot X(:,:,i), Y(:,:,i), Z(:,:,i),
% OR we can just convert the matrix to a vector (since it's 1x1x100 anyway)
%    and do the plotting in one go using 'squeeze' (see 'help squeeze').
%    squeeze(X) converts it from 1x1x100 (3D matrix) to 100x1 (vector):
plot3(squeeze(X),squeeze(Y),squeeze(Z),'o')
xlabel('x')
ylabel('y')
zlabel('z')

これにより、3つの軸をはっきりと見ることができます。enter image description here

グラフを「もっと3D」に見せたいのはグリッドラインなら、試してみてください grid on (これはMATLABヘルプファイルの例にあります plot3, 、 試す help plot3 MATLABプロンプトから):

grid on

enter image description here

「3番目の軸の欠落」をもう少し明確にする必要があります。

他のヒント

そのため、使用するときに同じ問題が発生しました plot3. 。何らかの理由で、 hold on コマンドプロットを「フラット化」します。理由はわかりませんが、操作と関係があると思います hold on プロットで実行します。編集:明確にするために、3Dプロットはまだそこにありますが、視点は変化することを余儀なくされています。 「Rotate 3D」ツール(キューブの周りに矢印が付いたもの)を使用すると、グラフが3Dであることがわかります。デフォルトの視点はまっすぐであるため、2つの軸のみが表示され、平らに見えます。

私は同様の問題に出会いました、そして @DrofDarbのように hold on 1つの軸を平らにしているようです。これが私のコードのスニペットです、これが役立つことを願っています。

for iter = 1:num_iters:
    % hold on;
    grid on;
    plot3(tita0,tita1, num_iters,'o')
    title('Tita0, Tita1')
    xlabel('Tita0')
    ylabel('Tita1')
    zlabel('Iterations')
    hold on;            % <---- Place here
    drawnow   
end

enter image description here


とは対照的に:

for iter = 1:num_iters:
    grid on;
    hold on;          % <---- Not here
    plot3(tita0,tita1, num_iters,'o')
    title('Tita0, Tita1')
    xlabel('Tita0')
    ylabel('Tita1')
    zlabel('Iterations')
    % hold on;
    drawnow   
end

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top