Stap 5: Verzenden van gegevens met Octave
De stappen voor het gebruik van de plotly API op Octave zijn vrijwel hetzelfde als in MATLAB, maar er is een klein ding die u moet doen eerst, oftewel de API-bestand te wijzigen, met de naam 'makecall.m'.
U vindt dit bestand op het zip-archief dat u hebt gedownload, in de map: / plotly /.
Het enige wat u hoeft te doen hier verandert het woord 'Post' te 'plaatsen' op lijn 10. Dan ben je klaar om te gaan!
Vanaf hier is het allemaal in principe hetzelfde. Voor mijn geval, ik had net een paar andere dingen op de deel van de gegevens en lay-out wijzigen, maar ik zal uitleggen op deze secties.
Op deze stap, zal ik meer richten op de veranderingen die ik heb gedaan. De stap "Verzenden gegevens met MATLAB" voor gedetailleerde info over elke functie te controleren.
Mappen:
Hier is precies hetzelfde als MATLAB, alleen de map wordt gewijzigd:
>>> api_path = '/ home/Joao/PlotlyAPI/plotly';
>>> addpath(genpath(api_path))
Verificatie:
Het teken in het proces is ook hetzelfde:
>>> inloggen ('joaoduarte', 'my_api_key')
Gegevens:
Dus is hier waar ik begonnen ben met problemen. De gegevens van mijn 'scl' veld werd gevormd door een cel van arrays met getallen en tekenreeksen. De nummers had decimaaltekens, die om wat voor reden, waren niet wordt verzonden. Octave berekend hen goed, maar ze werden niet correct wordt verzonden.
Ik dacht dat het misschien wel vanwege de systeemtaal van Ubuntu en de regionale indeling wordt in het Portugees, maar ik het veranderd naar het Engels, en er gebeurde niets. Ik bevestigde het uiteindelijk door die nummers omzetten in tekenreeksen, echter, zou er een betere oplossing.
Ik had het zelfde probleem met mijn X- en Y-matrices, toen hun stappen inferieur aan een, ook vanwege de decimale komma waren. Wat ik hier heb gedaan was om nieuwe vectoren, met dezelfde grootte, maar met een toename van één, het veranderen van hun grenzen.
Dit werkt, maar de grenzen van de as op plotly zal komen van verkeerd. Dus nodig ik om te herstellen, door het sturen van mijn aangepaste schaal binnen de plotly() functie.
Dus is hier de resulterende code:
>>> XX =-400:1:400; % wordt afgesloten vóór was van -40 tot 40 met stappen van 0.1
>>> YY = 0:1:500; % wordt afgesloten vóór was van 0 tot 50 met stappen van 0.1
>>> dataE = struct ('x', XX, 'y', JJ, 'z', K, ' 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...
'xtype', 'aangepast', 'x0', '-40', 'dx', '0.1',...
'ytype', 'aangepast', "y0", "0", "dy", '0.1')
>>> plotly ({dataE}, struct (nameE, 'bestandsnaam', 'fileopt', 'Overschrijf'))
Zoals u kunt zien, in het veld 'scl', zijn de nummers nu tussen enkele aanhalingstekens, draaien ze in tekenreeksen. De XX en YY variabelen, zijn mijn nieuwe arrays, met een toename van één.
De nieuwe functionaliteiten die hier gebruikt zijn de veldnamen 'xtype' en 'ytype'. Dit kunt u de schaal die u wilt gebruiken op de X- en Y-as van de grafiek. De 'x0' en 'y0' zijn de eerste waarden, en de 'dx' en 'dy' zijn de stappen. Bijvoorbeeld, op de Y-as, ik wil het moet tussen 0 en 50, met stappen van 0.1, maar ik ben het verzenden van gegevens van 0 tot 500 met stappen van 1, dus ik gebruik deze opties om het te veranderen. Ik zet 'y0' = 0 en "dy" = 0.1, dit zal de uitgang van de Y-as van 0 tot en met 50.
Dit probleem kwam dus als een goede zaak, want het maakte me leren meer functionaliteiten over de plotly API.
Tot slot moet dit een reactie zoals waargenomen op de vorige stap uitvoeren.
Lay-out:
Voor mijn zaak, in het lay-outgedeelte, was er slechts een klein ding te veranderen, vanwege het zelfde probleem van de decimale komma. Die was op de 'aantekeningen'-structuur, meer in het bijzonder op het gebied van 'y', omdat het de waarde-0.15. De moeilijke situatie was hetzelfde als voorheen, draaien in een tekenreeks tussen enkele aanhalingstekens. Nogmaals, kan er een betere oplossing voor dit, maar deze werkte boete voor me.
Zo komt de functie van plotlylayout() als:
>>> layoutE = struct ('titel', 'Elektrisch veld ruimtelijke verdeling [Octave]',...
'xaxis', struct ('titel', 'X-as [m]')...
'yaxis', struct ('titel', 'Y-as [m]')...
'aantekeningen' {{struct ('tekst', nameE...
'xref', 'papieren', 'yref', 'papieren'...
'x', 0, 'y', '-0.15', 'uitlijnen', 'links'...
'showarrow', false)}})
>>> plotlylayout(layoutE)
Al de rest bleef zoals het was. Deze functie wordt een reactie als ook teruggezet op de vorige stap.
Extra Info:
Net als voorheen, vergeet niet te controleren de API documentatie pagina voor gedetailleerde informatie over de JSON-objecten.
Ook, ben zeker om te proberen de JSON-webviewer op het plotly web app.