Hoe u een kandelaargrafiek maakt met matplotlib in python
Een kandelaargrafiek is een soort financiële grafiek die de koersbewegingen van effecten in de loop van de tijd weergeeft.
In het volgende voorbeeld ziet u hoe u een kandelaardiagram maakt met behulp van de Matplotlib- visualisatiebibliotheek in Python.
Voorbeeld: een kandelaardiagram maken in Python
Laten we zeggen dat we het volgende panda’s DataFrame hebben dat de open, gesloten, hoge en lage prijs van een bepaald aandeel over een periode van 8 dagen weergeeft:
import pandas as pd #createDataFrame prices = pd. DataFrame ({' open ': [25, 22, 21, 19, 23, 21, 25, 29], ' close ': [24, 20, 17, 23, 22, 25, 29, 31], ' high ': [28, 27, 29, 25, 24, 26, 31, 37], ' low ': [22, 16, 14, 17, 19, 18, 22, 26]}, index=pd. date_range (" 2021-01-01 ", periods=8, freq=" d ")) #display DataFrame print (prices) open close high low 2021-01-01 25 24 28 22 2021-01-02 22 20 27 16 2021-01-03 21 17 29 14 2021-01-04 19 23 25 17 2021-01-05 23 22 24 19 2021-01-06 21 25 26 18 2021-01-07 25 29 31 22 2021-01-08 29 31 37 26
We kunnen de volgende code gebruiken om een kandelaargrafiek te maken om de koersbewegingen van dit aandeel gedurende deze periode van 8 dagen te visualiseren:
import matplotlib. pyplot as plt
#create figure
plt. figure ()
#define width of candlestick elements
width = .4
width2 = .05
#define up and down prices
up = prices[prices. close >=prices. open ]
down = prices[prices. close <prices. open ]
#define colors to use
col1 = ' green '
col2 = ' red '
#plot up prices
plt. bar (up. index , up. close -up. open , width, bottom=up. open , color=col1)
plt. bar (up. index ,up. high -up. close ,width2,bottom=up. close ,color=col1)
plt. bar (up. index , up. low -up. open , width2, bottom=up. open , color=col1)
#plot down prices
plt. bar (down. index , down. close -down. open , width, bottom=down. open , color=col2)
plt. bar (down. index , down. high -down. open , width2, bottom=down. open , color=col2)
plt. bar (down. index ,down. low -down. close ,width2,bottom=down. close ,color=col2)
#rotate x-axis tick labels
plt. xticks (rotation= 45 , ha=' right ')
#display candlestick chart
plt. show ()
Elke kandelaar vertegenwoordigt de verandering in de prijs van het effect op een bepaalde dag. De kleur van de kandelaar vertelt ons of de koers hoger (groen) of lager (rood) sloot vergeleken met de voorgaande dag.
Voel je vrij om de breedte van de kandelaars en de gebruikte kleuren te veranderen om de grafiek er naar wens uit te laten zien.
We kunnen de kaarsen bijvoorbeeld nog dunner maken en verschillende kleuren gebruiken om ‘hoge’ en ‘lage’ dagen weer te geven:
import matplotlib. pyplot as plt
#create figure
plt. figure ()
#define width of candlestick elements
width = .2
width2 = .02
#define up and down prices
up = prices[prices. close >=prices. open ]
down = prices[prices. close <prices. open ]
#define colors to use
col1 = ' black '
col2 = ' steelblue '
#plot up prices
plt. bar (up. index , up. close -up. open , width, bottom=up. open , color=col1)
plt. bar (up. index ,up. high -up. close ,width2,bottom=up. close ,color=col1)
plt. bar (up. index , up. low -up. open , width2, bottom=up. open , color=col1)
#plot down prices
plt. bar (down. index , down. close -down. open , width, bottom=down. open , color=col2)
plt. bar (down. index , down. high -down. open , width2, bottom=down. open , color=col2)
plt. bar (down. index ,down. low -down. close ,width2,bottom=down. close ,color=col2)
#rotate x-axis tick labels
plt. xticks (rotation= 45 , ha=' right ')
#display candlestick chart
plt. show ()
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere algemene diagrammen in Python kunt maken:
Hoe u meerdere Matplotlib-plots op één figuur kunt maken
Hoe u een histogram kunt plotten uit een lijst met gegevens in Python
Boxplots per groep maken in Python