Error Plotting values from a struct with fields

9 visualizaciones (últimos 30 días)
XPX Labs
XPX Labs el 29 de Ag. de 2020
Respondida: Bruno Luong el 29 de Ag. de 2020
Greetings,
I have been playing with another Trial of Matlab. I decided to try to make an HTTP request and get the data back and plot it.
Solar API Request
This script will recieve data from the National Renewable Energy Labrabtory.
Application Interface
So here we pass:
API Key
API Endpoint related to solar data
nrel = 'https://developer.nrel.gov/'
uri = 'api/solar/solar_resource/v1.json?'
key = 'api_key=GetYourOwnKey'
lat = '&lat=37'
lon = '&lon=-97'
solarData = webread(strcat(nrel,uri,key,lat,lon));
This works just fine (I think). So what is returned is a 1x1 Struct with nested structs inside of it.
So the data I need is outputs:
And finally one more level down:
So as you can see, the struct here has 12 fields with values. When I try to plot it, I get errors. I need help understanding how to plot the montly names along the x axis and the values along the y axis. Any help?
Cheers

Respuesta aceptada

Walter Roberson
Walter Roberson el 29 de Ag. de 2020
values = structfun(@(x) x, solarData.outputs.avg_dni.monthly);
names = fieldnames(solarData.outputs.avg_dni.monthly);
plot(values);
xticks(1:length(values));
xticklabels(names);

Más respuestas (1)

Bruno Luong
Bruno Luong el 29 de Ag. de 2020
plot(struct2array(solarData.outputs.avg_dni.monthly))
You can do the label using Walter's solution

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by