How to Display certain time period of data

48 views (last 30 days)
Khalid Al naime
Khalid Al naime on 31 Jan 2021
Answered: Niall on 7 May 2021
HI How can I disply certain data in thingspeak graph rather than display all data with time.
for example If the data start receiving from 10:00 to 11:00 AM , I need to see the data from 10:10AM-10:15AM (how can I make zoom to see only this part and disply it in the graph)?
Regards;
khalid

Answers (2)

Kiran Felix Robert
Kiran Felix Robert on 3 Feb 2021
Hi Khalid,
I assume that you are using thingSpeakRead function to read data from a ThingSpeak channel.
You can use following function syntax to obtain the timestamp along with the data. Refer the Documentation of thinkSpeakRead for examples.
[data,timestamps] = thingSpeakRead(__)
You can use logical comparisons on the timestamp data to plot the data from specific time intervals.
The following is an example.
[data,timestamps,channelInfo] = thingSpeakRead(12397,'Fields',[1,4],'NumMinutes',5);
t = datestr(timestamps);
HH = str2num(t(:,13:14)); % Hour
MM = str2num(t(:,16:17)); % Minutes
x = (HH == 10 & MM > 00 & MM <= 15); % Range of data to be plotted
% Plots data between 10:00 AM and 10:15 AM
plot(timestamps(x),data(x))

Niall
Niall on 7 May 2021
I've a cheekier solution to this than Kiran has posted. Simply use the datetime function as limits for the plot. I'm using the same assumption that you're using a matlab vizualisation.
[vibration, time] = thingSpeakRead(readChannelID, 'Field', fieldID1, 'NumPoints', 1000, 'ReadKey', readAPIKey);
% t = datetime(Y,M,D,H,MI,S)
tmin = datetime(2021,5,6,13,48,0);
tmax = datetime(2021,5,6,13,57,0);
plot(time, vibration);
xlim([tmin tmax])

Categories

Find more on Visualize Data in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!