Cum să desenezi un grafic de sfeșnic în R? – atât GGPLOT2, cât și Plotly

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Ozancan Ozdemirși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Graficele cu lumânări sunt un tip de diagramă financiară folosită pentru a înfățișa mișcările de preț ale unui activ pe o anumită perioadă. Fiecare „sfeșnic” reprezintă un interval de timp – cum ar fi o zi, o oră sau un minut – și afișează patru piese cheie de date: prețul de deschidere, prețul de închidere, cel mai mare preț și cel mai mic preț în acea perioadă. Corpul sfeșnicului arată intervalul dintre prețurile de deschidere și închidere, în timp ce Wicks (cunoscute și sub denumirea de umbre) se extind la cele mai mari și mai mici prețuri. Dacă prețul de închidere este mai mare decât prețul de deschidere, sfeșnicul este de obicei colorat verde sau gol din stânga pentru a indica o creștere a prețurilor. În schimb, dacă prețul de închidere este mai mic decât prețul de deschidere, este colorat roșu sau umplut pentru a semnifica o scădere a prețului.

Aici puteți vedea o dezvăluire pentru cifrele din graficul de lumânări.

Sursa: CashOverflow

Graficele de sfeste sunt instrumente valoroase pentru comercianți și analiști, deoarece oferă o reprezentare vizuală a sentimentului de piață și a acțiunii prețurilor. Analizând tiparele și formațiunile – cum ar fi doji -urile, ciocile și modelele de înglobat – traderii pot obține informații despre potențialele inversări sau continuări ale tendințelor. Aceste modele ajută la luarea deciziilor în cunoștință de cauză cu privire la momentul introducerii sau ieșirii tranzacțiilor. Înțelegerea modului de a citi și interpreta diagramele de sfeșnice este esențială pentru oricine dorește să navigheze în mod eficient pe piețele financiare.

În acest tutorial, îmi propun să ilustrez modul în care puteți construi un grafic de sfeșnic în R folosind GGPLOT2 și biblioteci complot, separat. Biblioteca GGPLOT2 este un pachet popular de vizualizare a datelor care vă permite să creați o gamă largă de parcele, în timp ce biblioteca de complot vă permite să creați diagrame interactive care pot fi ușor partajate și explorate.

Astfel, trebuie să angajăm mai întâi patru pachete. Tidyquant, Quantmod, GGPLOT2 și Plotly. Pachetul Quantmod este utilizat pentru a prelua date financiare de la Yahoo Finance, în timp ce pachetul Plotly este utilizat pentru a crea diagrame statice și, respectiv, interactive.

Pachetul Tidyquant are o funcție încorporată utilizată pentru a crea un grafic de sfeșnic ca obiect GGPLOT, geom_candlestick.

Construirea unui grafic de sfeșnic cu ggplot2

## call libraries
library(ggplot2)
library(tidyquant)
library(quantmod)
library(plotly)

După ce am apelat la biblioteci, putem prelua prețurile istorice ale acțiunilor unei companii de la Yahoo Finance folosind funcția GetSymbols () din pachetul QuantMod. În acest exemplu, vom prelua prețurile istorice ale acțiunilor Apple Inc. (AAPL) și le vom stoca într -un cadru de date.

## retrieve historical stock prices
getSymbols("AAPL", src = "https://www.r-bloggers.com/2025/06/how-to-draw-a-candlestick-chart-in-r-both-ggplot2-and-plotly/yahoo")

AAPL

În continuare, vom crea un cadru de date din prețurile acțiunilor și vom selecta ultimele 30 de observații pentru a crea un grafic de sfeșnic. Funcția geom_candlestick () din pachetul Tidyquant este utilizată pentru a crea graficul de sfeșnic.

df <- data.frame(Date=index(AAPL),coredata(AAPL)) |> tail (30)
head(df)

           Date AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
4478 2024-10-16    231.60    232.12   229.84     231.78    34082200
4479 2024-10-17    233.43    233.85   230.52     232.15    32993800
4480 2024-10-18    236.18    236.18   234.01     235.00    46431500
4481 2024-10-21    234.45    236.85   234.45     236.48    36254500
4482 2024-10-22    233.89    236.22   232.60     235.86    38846600
4483 2024-10-23    234.08    235.14   227.76     230.76    52287000
     AAPL.Adjusted
4478      231.5253
4479      231.8949
4480      234.7417
4481      236.2201
4482      235.6008
4483      230.5064

## create a candlestick chart
df |> ggplot(aes(x = Date, y = AAPL.Close)) +
    geom_candlestick(aes(open = AAPL.Open, high = AAPL.High, low = AAPL.Low, close = AAPL.Close))+ 
    coord_x_date(xlim = c(min(df$Date), max(df$Date)), 
                 ylim = c(min(df$AAPL.Low)-10, max(df$AAPL.Close)+20))

imagineimagine

Acest cod R generează o diagramă de sfeșnică a prețurilor acțiunilor Apple folosind biblioteca GGPLOT2, îmbunătățită cu o funcție precum geom_candlestick () din pachetul Tidyquant. Începe prin a trece la cadrul de date DF în ggplot (), mapând axa x până în prezent și axa y la AAPL.CLOSE. Stratul geom_candlestick () este adăugat pentru a vizualiza prețurile deschise, mari, mici și apropiate ale stocului în timp, folosind coloanele respective din DF. În cele din urmă, coord_x_date () ajustează axa X pentru a acoperi intervalul de date complet al datelor și stabilește limitele axei y ușor dincolo de prețurile minime și maxime ale stocurilor (scăzând 10 de la cea mai mică scăzută și adăugând 20 la cea mai mare închidere) pentru a oferi o captură pentru o mai bună vizualizare.

Cu toate acestea, graficul produs este ușor diferit de cel obișnuit din cauza setărilor de culoare implicite. Putem schimba setările de culoare adăugând următoarele argumente la funcția geom_candlestick ():

## create a candlestick chart
df |> ggplot(aes(x = Date, y = AAPL.Close)) +
    geom_candlestick(aes(open = AAPL.Open, high = AAPL.High, low = AAPL.Low, close = AAPL.Close),colour_up = "darkgreen",fill_up = "darkgreen")+ 
    coord_x_date(xlim = c(min(df$Date), max(df$Date)), 
                 ylim = c(min(df$AAPL.Low)-10, max(df$AAPL.Close)+20))

imagineimagine

Deoarece este un obiect GGPLOT, puteți manipula acest grafic editând tema sa, adăugând titluri sau etichete sau schimbând schema de culori. De asemenea, puteți salva graficul ca fișier de imagine sau îl puteți încorpora într -un document R Markdown sau o aplicație strălucitoare.

## create a candlestick chart
df |> ggplot(aes(x = Date, y = AAPL.Close)) +
    geom_candlestick(aes(open = AAPL.Open, high = AAPL.High, low = AAPL.Low, close = AAPL.Close),colour_up = "darkgreen",fill_up = "darkgreen")+ 
    coord_x_date(xlim = c(min(df$Date), max(df$Date)), 
                 ylim = c(min(df$AAPL.Low)-10, max(df$AAPL.Close)+20)) + 
  labs(title =paste("Apple Inc. (AAPL) Stock Prices Between",min(df$Date),"and",max(df$Date)) , x = "Date", y = "Price")

imagineimagine

Construirea unui grafic de sfeșnic cu complot

După cum s -a menționat mai jos, Plotly este o bibliotecă puternică care vă permite să creați diagrame interactive în R. În acest exemplu, vom folosi funcția Plot_ly () pentru a crea o diagramă interactivă a sandlestick -ului prețurilor acțiunilor Apple. Funcția Plot_ly () ia cadrul de date DF ca intrare și specifică axa x ca dată și axa y ca prețuri deschise, apropiate, mari și mici ale stocului. Argumentul de tip este setat pe „sfeșnic” pentru a crea un grafic de sfeșnic, iar funcția de aspect () este utilizată pentru a adăuga un titlu în grafic.

fig <- df %>% plot_ly(x = ~Date, type="candlestick",
          open = ~AAPL.Open, close = ~AAPL.Close,
          high = ~AAPL.High, low = ~AAPL.Low) 
fig <- fig %>% layout(title = paste("Apple Inc. (AAPL) Stock Prices Between",min(df$Date),"and",max(df$Date)))

fig

newplotnewplot

Acest cod R generează o diagramă interactivă a prețurilor stocurilor Apple folosind biblioteca complot. Începe prin intermediul cadrului de date DF în funcția Plot_ly (), specificând axa x ca dată și axa y ca prețuri deschise, apropiate, mari și mici ale stocului. Argumentul de tip este setat pe „sfeșnic” pentru a crea un grafic de sfeșnic, iar funcția de aspect () este utilizată pentru a adăuga un titlu în grafic. Graficul rezultat este interactiv, permițându -vă să măriți, să treceți și să treceți peste puncte de date pentru a vizualiza informații suplimentare.

Puteți vizita documentația oficială a bibliotecii complot pentru a afla mai multe despre crearea de diagrame interactive de sfeșnice și personalizarea aspectului și comportamentului acestora.

Pentru orice întrebări sau feedback, vă rugăm să nu ezitați să mă contactați prin e-mail.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.