質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

1回答

1533閲覧

MATLABでの1次元散布図の作り方

pypypy.bom

総合スコア31

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

0グッド

1クリップ

投稿2019/05/03 02:56

##実現したいこと
点群が縦一列に並ぶ1次元散布図を作成すること.
使用しているデータは3つのグループがあり、1,3のグループの1次元散布図と2のグループのみの1次元散布図を同一のグラフ内に表現したい.
そして、その2列それぞれに対してx軸にラベルを付けたい.

##試してみたこと

matlab

1 %データ配列の作成(1~3すべて同様の作成方法) 2 %1列目を全て要素が1の列として連結 3 %グループの2のみ、1列目を-0.5することでグラフ作成の段階で2列の1次元散布図にした 4 y_data3 = data1; 5 [nn_y1, dy_y1] = size(y_data1); 6 y_one1 = ones(nn_y1, 1); 7 y_data1 = horzcat(y_one1, y_data1); 8 9for i = 1:10 10 figure 11 hold on; 12 title(Name); 13 scatter(y_data1(:, 1), y_data1(:, i), '*', 'g'); 14 scatter(y_data2(:, 1), y_data2(:, i), '*', 'b'); 15 scatter(y_data3(:, 1), y_data3(:, i), '*', 'r'); 16 hold off 17end

#試したことの結果
1,3のグループと2のグループで別々の2列の1次元散布図にすることはできたが、グラフの両端に点群が表示されてしまった.

#コメント
訂正および情報追記が必要であればすぐに行います、よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

解決案

既にほとんど出来ているように思うのですが...
以下のスクリプトを試していただければと思います.

<主な変更点>
・xlim()を用いて点群がグラフの両端に表示されるのを回避した
・legend()を用いてx軸にラベルを付けた

MATLAB

1% teratail_187515.m 2%{ 3 MATLABでの1次元散布図の作り方 4 https://teratail.com/questions/187515 5 6 <実現したいこと> 7 点群が縦一列に並ぶ1次元散布図を作成すること. 8 使用しているデータは3つのグループがあり、 9 1,3のグループの1次元散布図と 10 2のグループのみの1次元散布図を同一のグラフ内に表現したい. 11 そして、その2列それぞれに対してx軸にラベルを付けたい. 12%} 13 14clear, clc; 15 16% データ配列の作成(1~3すべて同様の作成方法) 17% 1列目を全て要素が1の列として連結 18% グループの2のみ、1列目を-0.5することでグラフ作成の段階で2列の1次元散布図にした 19 20% データ生成準備 21n = 10; 22x1 = 1.0; 23x2 = 0.5; 24x3 = x1; 25y_data1 = zeros(n,2); 26y_data2 = zeros(n,2); 27y_data3 = zeros(n,2); 28y_data1(:,1) = x1; 29y_data2(:,1) = x2; 30y_data3(:,1) = x3; 31 32% 描画準備(1) 33Name = 'y\_data'; 34xmin = 0.3; 35xmax = 1.2; 36ymin = -1.0; 37ymax = 6.0; 38 39% 描画準備(2) 40figure 41hold on; 42title(Name); 43xlim([xmin xmax]); 44ylim([ymin ymax]); 45ax = gca; 46ax.XTick = [ x2 x1 ]; 47ax.XTickLabel = {'x2', 'x1, x3'}; 48ax.YTick = [ 0 5 ]; 49ax.YAxis.MinorTickValues = ymin : 1.0 : ymax; 50ax.XGrid = 'on'; 51ax.YGrid = 'on'; 52ax.YMinorGrid = 'on'; 53clear Name ax xmin xmax ymin ymax x1 x2 x3; 54 55% データ生成 56for i = 1 : n 57 y_data1(i,2) = rand() * 3.5 + 2.0; 58 y_data2(i,2) = rand() * 5.0; 59 y_data3(i,2) = rand() * 3.0; 60end 61clear i; 62 63% 描画 64scatter(y_data1(:,1), y_data1(:,2), '*', 'g'); 65scatter(y_data2(:,1), y_data2(:,2), '*', 'b'); 66scatter(y_data3(:,1), y_data3(:,2), '*', 'r'); 67lgd = legend('y\_data1','y\_data2','y\_data3'); 68lgd.Location = 'North'; 69clear lgd; 70

投稿2019/08/21 09:17

編集2019/08/21 09:21
obeSolitary

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問