Stap 4: Verzenden van gegevens met MATLAB
Dus het eerste ding dat u moet doen is naar de map waar u de API-gegevensbestanden naar de MATLAB-map opgeslagen toevoegen.
U kunt dit doen door deze lijnen aan uw code toe te voegen:
>>> api_path = ' C: / Program Files/MATLAB/plotlyAPI/plotly ';
>>> addpath(genpath(api_path))
Vergeet niet om de bovenstaande directory te veranderen in het geval dat u een andere locatie dan ik gebruikt.
Verificatie:
Nu moet u zich aanmelden bij uw plotly account via uw code. Dit wordt gedaan met behulp van deze regel:
>>> inloggen ('joaoduarte', 'my_api_key')
U moet de snaren dienovereenkomstig wijzigen in uw instellingen. De eerste tekenreeks is uw plotly gebruikersnaam, in mijn geval is 'joaoduarte' en de tweede tekenreeks is uw API-sleutel, dat u in de vorige stap, in uw plotly profielinstellingen hebt gegenereerd.
Persoonlijk graag ik deze lijnen met instellingen op het begin van mijn code, omdat ze deel van de algemene configuraties uitmaken, maar u ze overal die u, kunt wilt zolang ze komen voordat u de plotly-functies aanroepen.
Gegevens:
Wanneer u gegevens vanuit de MATLAB-API verzendt, verzendt u in feite JSON objecten naar de plotly website. Deze objecten volgen een zeer specifieke en georganiseerde structuur, verdeeld in delen, zoals gegevens en lay-out.
Het deel van de gegevens is in principe een matrix met alle gegevens trace info, zoals X, Y en Z wijst bijvoorbeeld, evenals de instellingen voor de grafiek zelf, zoals het grafiektype en stijl.
Als u wilt verzenden gegevens info vanuit MATLAB plotly kunnen we gebruiken een API-functie plotly() aangeroepen. In mijn geval, ik wil de gegevens te verzenden x, waarbij X staat voor een array, in principe met de lengte van de X-as (40 m voor elke zijde, wordt 0 in het midden), de y-gegevens, waar Y ook een array is met de hoogte van het gebied (vanaf de grond tot 50 m hoog) en de z-gegevens, die in mijn geval kan echter de matrix 'K' of 'C' (voor elektrische en magnetische waarden respectievelijk). Bovendien, ik zal ook informatie over het type van de grafiek die ik wil versturen, in dit geval is het een 'heatmap' en de kleur die ik hou, schalen die is gedefinieerd in het veld 'scl'. Dus dit is wat ik nodig heb om te schrijven:
>>> dataM = struct ('x', X, 'y', Y, 'z', C, 'type', 'heatmap',...
'scl',{{{0,'rgb(0,0,131)'},{0.125,'rgb(0,60,170)'}...
{0.375,'rgb(5,255,255)'},{0.625,'rgb(255,255,0) "},...
{0.875,'rgb(250,0,0)'},{1,'rgb(128,0,0) "}}},...
'showscale', false)
>>> plotly ({dataM}, struct (nameM, 'bestandsnaam', 'fileopt', 'Overschrijf'))
De plotly functie ook kunt u beslissen de naam van de grafiek-bestand dat u op uw plotly gallery maakt, en als je een nieuw bestand maakt of een bestaande sjabloon wordt overschreven. Deze zijn gedaan met de velden 'bestandsnaam' en 'fileopt'. In mijn geval is de variabele 'nameM' een tekenreeks met de naam die ik wil de grafiek te hebben.
De functie plotly() retourneert een antwoord van plotly-website die dient als volgt uitzien:
URL: "https://plot.ly/~joaoduarte/8"
bericht: [1 x 0 char]
Waarschuwing: [1 x 0 char]
filename: ' elektrisch veld voor t = 6.667 ms'
fout: [1 x 0 char]
Nadat u dit antwoord ontvangen, is uw grafiek klaar op uw plotly gallery!
In mijn geval, ik ben het verzenden van een HELEBOEL gegevenspunten met deze API, dus om u een idee geven, duurt mijn computer bijna een minuut berekenen ze allemaal en stuur ze naar plotly. Deze reactie duurt zo een beetje te ontvangen.
Lay-out:
Nu is het lay-outgedeelte eigenlijk een object met extra globale indeling kaartinstellingen, zoals de titel van de grafiek, de aslabels, speciale aantekeningen, onder andere dingen. Als u wilt stuur lay-out info uit de plotly MATLAB-API, kunt u de functie plotlylayout().
In mijn geval zal ik deze functionaliteit gebruiken om de grafiek een titel, tot het label de X- en Y-as, en ook om de bestandsnaam als een aantekening onder de grafiek. Ik zal moeten schrijf deze lijnen:
>>> layoutM = struct ('titel', 'Magnetisch veld ruimtelijke verdeling',...
'xaxis', struct ('titel', 'X-as [m]')...
'yaxis', struct ('titel', 'Y-as [m]')...
'aantekeningen' {{struct ('tekst', nameM...
'xref', 'papieren', 'yref', 'papieren'...
'x', 0, 'y',-0.15, 'uitlijnen', 'links'...
'showarrow', false)}})
>>> plotlylayout(layoutM)
De functie plotlylayout() retourneert ook een reactie als volgt:
URL: "https://plot.ly/~joaoduarte/8"
bericht: [1 x 0 char]
Waarschuwing: [1 x 0 char]
filename: ' elektrisch veld voor t = 6.667 ms'
fout: [1 x 0 char]
Zoals betekent vóór, dit dat uw nieuwe grafiek is klaar in uw galerij!
Extra Info:
De specifieke structuur van de JSON-object misschien wel een beetje verwarrend op het eerste, en u moet respecteren voor de API te laten functioneren. In geval van twijfel, moet u check out de API-documentatie voor meer informatie over de specifieke parameters van elke functie, regels en andere functies die ik niet in dit voorbeeld gebruikt nog. U vindt het hier, niet alleen voor MATLAB maar ook voor Python, Arduino, Raspberry PI, onder anderen. Voor algemene informatie over plotly JSON-objecten raadpleegt u de documentatie van de REST API.
Een ander goed ding u kunt doen, is het controleren van de JSON-bestand van de grafiek, op uw plotly Webredacteur. Daar kunt u zien wat u daadwerkelijk heeft verzonden of hoe u de gegevens moet verzenden.