MATLAB에서 콘플레이크의 영양 그래프 같은 것을 그리자.

콘플레이크의 영양 그래프가 신경이 쓰인다.



우유 보이 재미있었습니다! 그래서 MATLAB에서도 영양 균형의 오각형 같은 그래프를 써 봅시다.

전에 스타 버의 음식 정보를 가져 왔기 때문에, 사용하자.



 단지 잘 이전 기사에서 스타 버의 영양소가 복용되었습니다. 그래서, 이것을 그래프로 해 봅시다. 그래프로 하기 때문에, 하루에 필요한 영양소까지 정규화해 둡시다.
%% ウェブから落としてくる。
url = "https://www.starbucks.co.jp/assets/images/web2/images/allergy/pdf/allergen-food.pdf";
websave('starbucks_food.pdf',url)

%% 関連しそうな文字列をごっそり取り出す。
D = extractFileText('starbucks_food.pdf');
D = extractBetween(D,"食塩相当量(g)","お問い合わせ先");
D = replace(D,newline,' ');
X = regexp(D,'[^0-9]+ [0-9.]+ [0-9.]+ [0-9.]+ [0-9.]+ [0-9.]+','match');

%% テーブルを作ったり。
for n = 1:length(X)
    spl = split(X(n));
    Name(n,1) = join(spl(1:end-5));
    Energy(n,1) = double(spl(end-4));
    Protein(n,1) = double(spl(end-3));
    Fat(n,1) = double(spl(end-2));
    Carbo(n,1) = double(spl(end-1));
    Salt(n,1) = double(spl(end));
end

T = table(Name,Energy,Protein,Fat,Carbo,Salt);

%% 一日に必要な栄養素で正規化しましょう。
T_full = [2600  60  500  250  8];  % だいたいこのくらいらしい。(kcal, g, g, g, g)
T{:,2:end} = T{:,2:end}./T_full;

뭐야? 명령 창에서 보자.
>> T(1:3,:)

ans =

  3×6 table

                     Name                     Energy     Protein      Fat      Carbo      Salt 
    ______________________________________    _______    ________    ______    ______    ______

    " ペストリー ブルーベリースコーン"             0.11077    0.091667    0.0222    0.1692       0.1
    " ペストリー ストロベリーチーズケーキスコーン"    0.13846     0.12667    0.0306     0.196      0.15
    " ペストリー チョコレートチャンクスコーン"       0.13577        0.11     0.032    0.1848    0.1375

좋아 보인다!

테이블을 입력으로 하여, 2열째 이후를 플롯하는 함수를 만들자.



1열째가 이름으로, 2열째 이후가 영양소로서 플롯할 수 있도록 합시다. sin/cos 을 사용해, 이런 느낌의 함수를 만들면 좋다.

corn_plot.m
function corn_plot(T,color)
[m,n] = size(T);
for ix = 0:n-2
    plot(linspace(0,sind(ix/(n-1)*360),5),linspace(0,cosd(ix/(n-1)*360),5),'+-')
    text(sind(ix/(n-1)*360), cosd(ix/(n-1)*360), T.Properties.VariableNames{ix+2})
    hold on
end
for ix = 1:m
    x = T{ix,2:end} .* sind((0:n-2)/(n-1)*360);
    y = T{ix,2:end} .* cosd((0:n-2)/(n-1)*360);
    P = patch(x,y,color);
    P.FaceAlpha = 0.2;
    P.EdgeColor = 'r';
    P.LineWidth = 3;
end
axis equal
axis off
title([T{ix,1},'は、栄養バランス満点!!'])
end

그럼 블루베리 스콘에서도 플롯 해 봅시다! 명령 창에서 이런 느낌.
>> corn_plot(T(1,:),'b')



전혀 영양 균형 만점으로 보이지 않는다!
값이 작기 때문에 3개 정도 겹쳐서 그려보자.
>> corn_plot(T(1,:),'b')
>> corn_plot(T(2,:),'g')
>> corn_plot(T(3,:),'c')



... 반드시 스콘은 다이어트에 좋네요.

모두 겹쳐 보자.


>> corn_plot(T,'c')



압도적인 크기의 것이 없으면 보기 좋지 않다. .

우선 할 수 있었다.



비타민이라든지 지표가 없으면 보기 좋지 않다는 것과 콘플레이크의 그래프의 크기는 대단하다는 것이 좋을까. .

좋은 웹페이지 즐겨찾기