Trama nascosta sotto un'altra trama in Matlab
-
23-12-2019 - |
Domanda
Sto creando un grafico a candela che rappresenta i prezzi delle azioni.Una volta creato, voglio aggiungere cerchio verde che mostra dove / quando sto comprando lo stock.
hold on;
candle(myData.High, myData.Low, myData.Close, myData.Open, '', myData.Date, 'dd/mm/yy');
m = plot(myExecutionTable.BuyDate,myExecutionTable.BuyPrice,'og')
uistack(m)
hold off;
.
Il problema è che se MyEsecutionTable.Buyprice ha un valore tra l'apertura e la chiusura, il cerchio non viene visualizzato.Immagino sia nascosto sotto il candeliere.Quindi ho provato a usare Uistack ma senza successo.Quando cambio a
plot(myExecutionTable.BuyDate,myExecutionTable.BuyPrice+100,'og')
.
Il cerchio verde appare quindi (sopra il candeliere)
Grazie, Serge
Soluzione
Il modo più semplice per assicurarsi che un oggetto grafico sia sopra un altro (e non sotto), è di tracciarlo successivo .
Se per qualche motivo non puoi farlo in questo modo, puoi anche manipolare l'ordine degli oggetti figlio degli assi:
h = get(gca, 'Children');
.
restituisce un vettore di maniglie grafiche.Scambio di maniglie tra le posizioni in questo vettore (indice superiore significa più in alto), quindi scriverlo indietro usando
set(gca, 'Children', h)
.