ThingSpeak의 누적 그래프

10825 단어 Thingspeakmatlab
이전에 쓴 기온의 그래프가 버그 되었기 때문에 고쳐 보았습니다. 2치의 쌓아 올린 그래프로, 한쪽을 흰색으로 해 지워, 고기 최저 최온의 표시를 실시합니다.

이전에 만든 것은 0도 이하를 지원하지 않았습니다.
% Last week max and min temputure

readChannelID = ;
readAPIKey = "";

last = 7 * 4;

day = datetime('now') - last;
disp(day);

% startdaystr = "Sep 22, 2019 00:00:00";
% enddaystr = "Sep 23, 2019 00:00:00";

for c = 1:last

    startdaystr = datestr(day,'mmm dd, yyyy 00:00:00');
    enddaystr = datestr(day + 1,'mmm dd, yyyy 00:00:00');
    [a,b] = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey, 'Fields',2,'DateRange', [datetime(startdaystr),datetime(enddaystr)]);

    a = filloutliers(a,'linear');
    [m, n] = max(a);
    [x, y] = min(a);

    t(c) = day;
    if x > 0
      vmax(c) = m - x
      vmin(c) = x
    elseif m > 0
      vmax(c) = m
      vmin(c) = x
    else
      vmax(c) = x - m
      vmin(c) = m
    end
    day = day + 1
end

C = vertcat(vmin, vmax);

H = bar(t, C, 'stacked');

ba = H(1);
bb = H(2);
disp(ba);

ba.FaceColor = 'flat';
bb.FaceColor = 'flat';

set(H(1),{'EdgeColor'},{[1 1 1]});
set(H(2),{'EdgeColor'},{[1 1 1]});
for c = 1:last
    if vmin(c) > 0 
      ba.CData(c,:) = [1 1 1];
      bb.CData(c,:) = [1 0 1];
    elseif vmax(c) < 0
      ba.CData(c,:) = [1 1 1];
      bb.CData(c,:) = [1 0 1];
    else
      ba.CData(c,:) = [1 0 1];
      bb.CData(c,:) = [1 0 1];
    end
end



테스트 케이스: 최고 기온 10도 최저 기온 2도



테스트 케이스: 최고 기온 2도 최저 기온-10도



테스트 케이스: 최고 기온-2도 최저 기온-10도



계절 밖의 눈이 내린 날의 그래프가 이상해졌습니다.



조사해 보았는데 filloutliers(a,'linear'); 가 에러치로서 데이터를 생략한 것이 원인이었습니다. 계절 밖의 눈에 MATLAB도 헤매어 버린 것 같습니다.

좋은 웹페이지 즐겨찾기