Как создать свечной график с помощью matplotlib в python


Свечной график — это тип финансового графика, который отображает движение цен ценных бумаг с течением времени.

В следующем примере показано, как создать свечную диаграмму с использованием библиотеки визуализации Matplotlib в Python.

Пример: создание свечного графика в Python

Допустим, у нас есть следующий DataFrame pandas, который показывает цену открытия, закрытия, максимальную и минимальную цену определенной акции за 8-дневный период:

 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

Мы можем использовать следующий код, чтобы создать свечной график для визуализации движения цен этой акции за этот 8-дневный период:

 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 () 

Свечной график с использованием matplotlib в Python

Каждая свеча представляет собой изменение цены ценной бумаги в определенный день. Цвет свечи говорит нам, закрылась ли цена выше (зеленая) или ниже (красная) по сравнению с предыдущим днем.

Не стесняйтесь менять ширину свечей и цвета, чтобы график выглядел так, как вы хотите.

Например, мы могли бы сделать свечи еще тоньше и использовать разные цвета для обозначения «высоких» и «низких» дней:

 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 () 

Дополнительные ресурсы

В следующих руководствах объясняется, как создавать другие распространенные диаграммы в Python:

Как создать несколько графиков Matplotlib на одной фигуре
Как построить гистограмму из списка данных в Python
Как создать коробчатые диаграммы по группам в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *