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.mfunction 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')
압도적인 크기의 것이 없으면 보기 좋지 않다. .
우선 할 수 있었다.
비타민이라든지 지표가 없으면 보기 좋지 않다는 것과 콘플레이크의 그래프의 크기는 대단하다는 것이 좋을까. .
Reference
이 문제에 관하여(MATLAB에서 콘플레이크의 영양 그래프 같은 것을 그리자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teruqii/items/dc9c1809a3917dcdc8da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
단지 잘 이전 기사에서 스타 버의 영양소가 복용되었습니다. 그래서, 이것을 그래프로 해 봅시다. 그래프로 하기 때문에, 하루에 필요한 영양소까지 정규화해 둡시다.
%% ウェブから落としてくる。
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.mfunction 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')
압도적인 크기의 것이 없으면 보기 좋지 않다. .
우선 할 수 있었다.
비타민이라든지 지표가 없으면 보기 좋지 않다는 것과 콘플레이크의 그래프의 크기는 대단하다는 것이 좋을까. .
Reference
이 문제에 관하여(MATLAB에서 콘플레이크의 영양 그래프 같은 것을 그리자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teruqii/items/dc9c1809a3917dcdc8da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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')
>> corn_plot(T(1,:),'b')
>> corn_plot(T(2,:),'g')
>> corn_plot(T(3,:),'c')
>> corn_plot(T,'c')
압도적인 크기의 것이 없으면 보기 좋지 않다. .
우선 할 수 있었다.
비타민이라든지 지표가 없으면 보기 좋지 않다는 것과 콘플레이크의 그래프의 크기는 대단하다는 것이 좋을까. .
Reference
이 문제에 관하여(MATLAB에서 콘플레이크의 영양 그래프 같은 것을 그리자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teruqii/items/dc9c1809a3917dcdc8da
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(MATLAB에서 콘플레이크의 영양 그래프 같은 것을 그리자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teruqii/items/dc9c1809a3917dcdc8da텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)