ThingSpeakのグラフ

デフォルトのグラフ

![スクリーンショット 2020-05-03 9.08.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/594dc890-2514-1f28-3323-d9e1471da7ba.png)

OptionでDaysを1

![スクリーンショット 2020-05-03 9.08.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/9e1a4092-6faf-8c2e-4e62-b4582dd03eed.png)

OptionでDaysを1でAvergeを60

![スクリーンショット 2020-05-03 9.09.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/7fe50665-b96c-ec72-d330-63c66d53ebfc.png)

OptionでResultsを600でAvergeを60

![スクリーンショット 2020-05-03 9.10.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/361f80e5-310f-59a0-1348-36124183d9e9.png)

# MATLAB Visualization編

二つのデータを重ねてみました。

```MATLAB
bhReadChannelID = ;
bhFieldID1 = 2;
bhReadAPIKey = '';

myReadChannelID = ;
myFieldID1 = 2;
myReadAPIKey = '';

%% Read Data %%

now = datetime('now');
% after 4 o'clock
start = hour(now) * 60 + minute(now) - 1 - 60 * 4;

bhTT = thingSpeakRead(bhReadChannelID, 'Field', bhFieldID1, 'NumMinutes', start, 'ReadKey', bhReadAPIKey, 'outputFormat','timetable');
myTT = thingSpeakRead(myReadChannelID, 'Field', myFieldID1, 'NumMinutes', start, 'ReadKey', myReadAPIKey, 'outputFormat','timetable');

TT = synchronize(bhTT,myTT,'union','linear');

plot(TT.Timestamps, TT.FieldLabel2_bhTT,...
    TT.Timestamps, TT.FieldLabel2_myTT);

legend('BH1750','BS120');
```

![スクリーンショット 2020-05-11 7.53.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/e6d3cb8c-8ea9-69a7-3b84-92913981142e.png)

照度は数字が大きくなるので対数グラフにしてみました。

```MATLAB
now = datetime('now');
start = hour(now) * 60 + minute(now) - 1 - 60 * 4;
[bhdata, bhtime] = thingSpeakRead(bhReadChannelID, 'Field', bhFieldID1, 'NumMinutes', start, 'ReadKey', bhReadAPIKey);

ax1 = subplot(1,1,1)
plot(bhtime, bhdata);
set(ax1,'yscale','log');
legend('BH1750', 'Location', 'northwest');
```

![スクリーンショット 2020-05-14 9.01.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/b17ceede-c35f-a03e-e967-f499e9f2f7d6.png)

対数にしないとこうなります。

![スクリーンショット 2020-05-14 9.01.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/93dfca8a-94d7-e5eb-ce1a-325ee2658732.png)

日の出の線を引いてみました

```MATLAB
[ymin,minidx] = min(bhtime);
rise = datenum('17-May-2020 04:35:00') - datenum(ymin);
xline(ymin + rise, 'color', 'red');
ylabel('Lux');
legend('BH1750', '4:35', 'Location', 'northwest');
```

![スクリーンショット 2020-05-17 6.07.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/a98b85cf-723b-0edd-5a80-d92ffff09984.png)

xlineの値の日時の扱いがよくわからなく、datenumを直接入れるとエラーになるのでこうしました。もっと良い方法がありそうですが。

日の出前の時間は市民薄明と言います。

判例ではなく線に文字を書いてみます。

```MATLAB
ax1 = subplot(1,1,1)
p1 = plot(bhtime, bhdata);
set(ax1,'yscale','log');
[ymin,minidx] = min(bhtime);
rise = datenum('17-May-2020 04:35:00') - datenum(ymin);
xs = xline(ymin + rise, '-', {'Sunrise'}, 'color', 'red');
xs.LabelVerticalAlignment = 'bottom';
nan = datenum('17-May-2020 11:37:00') - datenum(ymin);
xt = xline(ymin + nan, '-', {'Meridian', 'transit'}, 'color', 'red');
xt.LabelVerticalAlignment = 'bottom';
ylabel('Lux');
legend([p1], 'BH1750', 'Location', 'south');
```

![スクリーンショット 2020-05-17 12.11.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/9891f481-63d3-3da7-3282-eacef4636411.png)