seolpyo_mplchart 사용 설명서

작성자: [관리자] 하얀설표

2025.01.18 18:05 (KST) 작성됨

2025.05.08 09:31 (KST) 수정됨






(05.08) 수정됨.

Donation

Bitcoin: 1MKCHW8smDZv5DFMiVkA5G3DeXcMn871ZX

 

Ethereum: 0x1c5fb8a5e0b1153cd4116c91736bd16fabf83520

 

English Document

https://white.seolpyo.com/entry/148/

 

설치 방법

> pip install seolpyo-mplchart

 

※ 32비트 파이썬 3.11, pandas 2.0.0, matplotlib 3.7.0 버전에서 작동하는 것을 직접 확인했습니다.

 

기준 버전

1.4.1

 

소개

 

seolpyo-mplchart는 matplotlib을 활용한 파이썬 패키지(모듈)입니다.

사실, 캔들스틱 차트를 만들기 위한 대표적인 파이썬 패키지는 finplot과 plotly가 있습니다.
그럼에도 불구하고 굳이 matplotlib으로 새로운 주식 차트 패키지를 만든 이유는 finplot의 경우 pyqt를 사용해야한다는 강제성이 있고, plotly의 경우 웹브라우저를 통해서만 이용할 수 있기 때문입니다.

 

주요 특징

  • 조회 영역을 표시하기 위한 슬라이더가 제공됩니다.
  • 슬라이더를 통해 조회 영역을 변경, 또는 이동할 수 있습니다.
  • 조회 영역이 변경되는 경우 그에 맞게 ytick과 ytick label이 실시간으로 변경됩니다.
  • 마우스 커서의 위치가 캔들 또는 거래량 바 위라면, 해당하는 정보를 텍스트로 표현합니다.
  • 연결 가능한 gui가 한 가지로 강제되지 않습니다. matplotlib이 지원하는 모든 gui(tkinter, wxpython, pyqt 등)에 연결할 수 있습니다.

 

다음은 tkinter에 연결하여 캔들스틱 차트를 그리는 샘플 이미지입니다.

tkinter 샘플 코드 확인하기

 

간단 사용방법

seolpyo_mplchart.SliderChart()를 통해 차트 오브젝트를 생성할 수 있으며, set_data() method를 통해 주가 데이터를 받습니다.
이때 받는 데이터는 pandas.DataFrame이어야 합니다.

이후 seolpyo_mplchart.show()를 실행하면 차트가 열립니다.

seolpyo_mplchart.show() function은 matploib.pyplot.show() function을 호출합니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

필요한 데이터

차트 오브젝트는 반드시 [기준시간, 시가, 고가, 저가, 종가, 거래량] column을 보유한 DataFrame을 전달해야 합니다.

 

데이터 키 변경

각각의 column key는 [date, open, high, low, close, volume]입니다.
만약 데이터 프레임에서 사용하는 키값이 이와 다르다면 다음과 같이 class의 variable을 변경해야 합니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.date= '시간'
c.Open = '시가'
c.high = '고가'
c.low = '저가'
c.close = '종가'
c.volume = '거래량'
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()


### OR ###


import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

class Chart(mc.SliderChart):
  date = '시간'
  Open, high, low, close = ('시가', '고가', '저가', '종가')
  volume = '거래량'

c = Chart()'
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

3가지 차트를 제공합니다.

seolpyo-mplchart는 총 3가지 종류의 캔들스틱 차트를 제공합니다.

 

OnlyChart

 

mplfinance와 같은 일반 차트입니다.
캔들스틱 차트를 그리기만 할 뿐, 영역 이동이나 마우스 이동 시 정보를 표시하는 등의 상호작용이 존재하지 않습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.OnlyChart()
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

 

CursorChart

 

일반 차트에서 마우스 상호작용이 추가된 차트입니다.
마우스가 캔들 또는 거래량 바 위에 위치하면 정보 텍스트가 표시됩니다.

일반 차트와 마찬가지로 영역 이동 기능은 존재하지 않습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.CursorChart()
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

SliderChart

 

커서 차트에 슬라이드 기능이 추가된 차트입니다.
제공되는 슬라이더를 통해 조회 영역을 변경하는 기능이 추가됩니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

거래량차트 제외하기

 

 

 "if self.volume"의 값이 거짓이면 거래량 차트를 그리지 않습니다.

이 옵션은 Chart, CursorChart, SliderChart 모두 적용됩니다. 

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.volume = None
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

워터마크

1.0.0 버전으로 업그레이드하며 워터마크를 기본으로 표시하도록 변경되었습니다.

 

워터마크가 표시되는 이유

캔들스틱 차트로 정보를 조회하는데, 어떤 데이터를 보고 있는지 확인하는 것이 번거롭다는 것을 느꼈습니다.
이에 차트 중심 부분에 어떤 정보를 표시하고 있는지 표시하고 있으면 어떤 정보를 보고 있는지 확인하기 쉽기 때문에 이 기능을 추가했습니다.

만약 워터마크가 노출되는 것이 싫다면 "if watermark"의 값이 거짓이 되도록 설정하면 됩니다.
워터마크 텍스트를 변경하고 싶다면 Chart object의 watermark 값을 변경하면 됩니다.

import json

import seolpyo_mplchart as mc
import pandas as pd

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.watermark = '' # watermark not display
c.watermark = 'This is watermark text' # display text
c.set_data(df)

mc.show() # same as matplotlib.pyplot.show()

 

언어와 텍스트 포맷 변경방법

언어는 기본적으로 한글을 사용합니다.
만약 필요한 경우, 가격과 거래량 단위를 변경할 수 있고, 표시되는 텍스트의 포맷을 원하는 형식의 문구로 변경할 수 있습니다.

 

표시 단위 변경방법

 

가격과 거래량 단위는 다음 2개의 variable에서 관리합니다.

  • unit_price: 가격에 사용되는 단위.
  • unit_volume: 거래량에 사용되는 단위.

 

만약 필요한 경우, 가격과 거래량을 소수점 이하 몇자리까지 표시할지 또한 선택할 수 있습니다.

  • digit_price: 가격에 표시되는 소수점 갯수.
  • digit_volume: 거래량에 표시되는 소수점 갯수.
import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    unit_price = '$'
    unit_volume = 'Vol'
    digit_price = 3
    digit_volume = 1

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

정보 텍스트 포맷 변경방법

 

가격이동평균선의 명칭과 표시되는 텍스트 박스의 문구를 변경할 수 있습니다.
포맷 형식은 주가, 거래량과 가격이동평균선 3개입니다.

가격이동평균선의 포맷은 *args를 전달받지만, 주가와 거래량 텍스트 포맷은 **kwargs를 전달받습니다.
참고로 mc.format_candleinfo_en과 mc.format_volumeinfo_en으로 기본 영문 포맷이 제공되고 있으니 필요한 경우 사용할 수 있습니다.

  • format_candleinfo: 마우스가 캔들 위에 위치할 때 표시되는 정보의 텍스트 포맷
  • format_volumeinfo: 마우스가 거래량 바 위에 위치할 때 표시되는 정보의 텍스트포맷
  • format_ma: 주가 차트 위에 위치하는 가격이동평균선 legend에 사용되는 텍스트 포맷
import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    unit_price = '$'
    format_ma = 'ma{}'
    format_candleinfo = '{dt}\n\nclose:   {close}\nrate:    {rate}\ncompare: {compare}\nopen:    {open}({rate_open})\nhigh:    {high}({rate_high})\nlow:     {low}({rate_low})\nvolume:  {volume}({rate_volume})'
    format_volumeinfo = '{dt}\n\nvolume:      {volume}\nvolume rate: {rate_volume}\ncompare:     {compare}'

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

텍스트 정보 제어하기

 

"get_info_kwargs" mehod를 통해 텍스트 박스에 표시되는 데이터를 변경하거나, 추가할 수 있습니다.

1.4.1 버전부터 사용 가능합니다.

import pandas as pd
import seolpyo_mplchart as mc


class Chart(mc.SliderChart):
    format_candleinfo = mc.format_candleinfo_ko + '\nCustom info: {ci}'

    def get_info_kwargs(self, is_price, **kwargs):
        if is_price:
            kwargs['ci'] = 'You can add Custom text Info or Change text info.'
            kwargs['close'] = 'You can Change close price info.'
        return kwargs

C = Chart()
data = {stock price data}
df = pd.DataFrame(data)

C.set_data(df)

mc.show()

 

차트 스타일 변경하기

 

제가 하얀 바탕의 배경을 좋아하기 때문에 차트의 기본 스타일은 밝습니다.
만약 차트 스타일을 변경하고 싶다면 각각의 값들을 조정해서 원하는 스타일의 차트를 만들 수 있습니다.

다음 코드에서 변경한 설정들은 다음과 같습니다.

  • color_background: 배경 색상
  • gridKwargs: 배경에 그려지는 grid에 적용되는 옵션
  • color_tick: 틱에 적용되는 색상
  • color_tick_label: 틱 라벨에 적용되는 색상
  • color_up: 종가가 시가보다 "높은" 캔들에 적용되는 색상
  • color_down: 종가가 시가보다 "낮은" 캔들에 적용되는 색상
  • color_flat: 종가가 시가와 "같은" 캔들에 적용되는 색상
  • color_up_down: 종가가 시가보다 "높지만", 종가가 전일 종가보다 "낮은" 캔들에 적용되는 색상
  • color_down_up: 종가가 시가보다 "낮지만", 종가가 전일 종가보다 "높은" 캔들에 적용되는 색상
  • color_priceline: 종가 선형차트와 색상이 지정되지 않은 이동평균선에 적용되는 색상
  • facecolor_volume: 거래량 바의 몸통 색상
  • edgecolor_volume: 거래량 바의 외곽선 색상
  • list_macolor: 이동평균선에 적용되는 색상
  • lineKwargs: 마우스가 차트 위에 위치하는 경우 생성되는 선들에 적용되는 옵션
  • color_box: 마우스가 캔들 또는 거래량 위에 위치할 때, 해당하는 캔들 또는 거래량을 강조표시하는 박스에 적용되는 색상
  • textboxKwargs: 정보 텍스트 박스에 적용되는 옵션
  • textKwargs: 정보 텍스트 오브젝트에 적용되는 옵션
  • color_navigator_color: 선택되지 않은 영역에 적용되는 커버 색상
  • color_navigator_line: 선택 영열 좌우에 표시되는 수직선 색상
  • generate_data(class method): 세그먼트를 생성하기 전에 작동하는 class method. 이 method를 override하여 특정 조건에 해당하는 거래량 바의 색상을 변경했습니다.
import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    digit_price = 3
    digit_volume = 1

    unit_price = '$'
    unit_volume = 'Vol'

    format_ma = 'ma{}'
    format_candleinfo = format_candleinfo_en
    format_volumeinfo = format_volumeinfo_en

    color_background = (0, 0, 0, 1)
    gridKwargs = dict(linestyle='-', color='darkorange')
    color_tick = 'w'
    color_tick_label = 'w'

    color_up = 'aqua'
    color_down = 'w'
    color_flat = 'w'
    color_down_up = 'w'
    color_up_down = 'aqua'
    color_priceline = 'w'
    facecolor_volume = 'greenyellow'
    edgecolor_volume = 'blue'
    list_macolor = ['lime', 'cyan', 'fuchsia', 'yellow', 'blueviolet']
    lineKwargs = dict(edgecolor='w', linestyle=':')
    color_box = 'w'
    textboxKwargs = dict(edgecolor='w', facecolor='k')
    textKwargs = dict(color='w')
    color_navigator_cover = 'w'
    color_navigator_line = 'w'

    def generate_data(self):
        self.df.loc[self.df[self.volume].shift(1) < self.df[self.volume], ['volumefacecolor', 'volumeedgecolor']] = ('red', 'yellow')
        return


file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

차트 테마 변경방법

 

set_theme이라는 내장 function을 통해 chart object의 테마를 변경할 수 있습니다.

테마는 light와 dark 2개 중 1개를 선택할 수 있습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    digit_price = 3
    digit_volume = 1

    unit_price = '$'
    unit_volume = 'Vol'

    format_ma = 'ma{}'
    format_candleinfo = format_candleinfo_en
    format_volumeinfo = format_volumeinfo_en


file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
mc.set_theme(c, 'dark')
c.set_data(df)

mc.show()

 

분수 표시방법

 

"fraction"이 참이면 소수점 이하의 수를 분수를 표시합니다. 표현되는 분수는 "digit_price"와 "digit_volume"에 영향을 받습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    unit_price = '$'
    unit_volume = 'Vol'
    digit_price = 3
    digit_volume = 1
    fraction = True

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

set_data method의 옵션

"set_data" method는 데이터프레임 외에 다음 인수들을 받습니다.

  • sort_df: 참인 경우 DataFrame을 정렬합니다. 정렬 기준은 기준시간 column이며, 오름차순으로 정렬합니다.
  • calc_ma: 참인 경우 가격이동평균선 생성을 위한 데이터를 계산합니다. 거짓인 경우 DataFrame에 사전에 계산된 가격이동평균선 정보가 존재해야 합니다. 각 column의 key는 "ma{n}" 형식이어야 하며, list_ma와 1:1로 매칭되어야 합니다.
  • change_lim: 참인 경우 초기 조회 영역을 변경합니다. 거짓인 경우 조회 영역을 변경하지 않습니다.
  • calc_info: 참인 경우 텍스트 박스에 사용되는 데이터를 계산합니다. 거짓인 경우 DataFrame에 사전에 계산된 각 정보들이 존재해야 합니다. 각 column의 key는 ('rate', 'compare', 'rate_open', 'rate_high', 'rate_low', 'rate_volume')입니다.
  • set_candlecolor: 거짓인 경우 캔들 색상을 임의로 설정하지 않습니다. 전달한 데이터프레임에 "facecolor"와 "edgecolor" column이 존재하지 않는다면 에러를 발생시킵니다.
  • set_volumecolor: 거짓인 경우 거래량 바 색상을 임의로 설정하지 않습니다. 전달받은 데이터프레임에 "volumefacecolor"와 "volumeedgecolor" column이 존재하지 않는다면 에러를 발생시킵니다.

 

위에서 설명한 작업들이 불필요하다고 생각하는 경우, 각 arg를 False로 하여 해당 작업을 하지 않고 넘어갈 수 있습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = mc.SliderChart()
c.set_data(df, sort_df=True, calc_ma=True, change_lim=True, calc_info=True, set_candlecolor=True, set_volumecolor=True)

mc.show()

 

캔들과 거래량 바 모양 변경하기

 

"get_candle_segment" method를 통해 그리는 캔들의 모양을 변경할 수 있습니다.

거래량 바의 경우 "get_volume_segment" method를 통해 모양을 변경할 수 있습니다.

 

비슷한 방식으로 "add_candle_color_column"과 "add_volume_color_column" method를 통해 캔들과 거래량 바의 색상 적용 방식을 변경할 수 있습니다.

 

이 method들은 1.4.1 버전부터 추가되었습니다.

import pandas as pd
import seolpyo_mplchart as mc

class Chart(mc.SliderChart):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.collection_candle.set_linewidth(1.5)
        return

    def get_candle_segment(self, *, x, left, right, top, bottom, is_up, high, low):
        if is_up:
            return (
                (x, high),
                (x, top), (right, top), (x, top),
                (x, bottom), (left, bottom),
                (x, bottom), (x, low), (x, high)
            )
        else:
            return (
                (x, high),
                (x, bottom), (right, bottom), (x, bottom),
                (x, top), (left, top), (x, top),
                (x, low), (x, high)
            )


C = Chart()

data = {stock price data}
df = pd.DataFrame(data)

C.set_data(df)

mc.show()

 

조회 범위에 따른 단순한 표현

seolpyo-mplchart는 데이터 수가 많으면 전체가 아닌 일부분만 그립니다.
그 이유는 다음과 같습니다.

  • 화면 전환 속도의 저하를 방지하기 위해서입니다. 그리는 데이터가 많아질수록, 전환 속도가 느려집니다.
  • 그리는 것이 많으면 세세하게 그려도 알아볼 수 없습니다. 따라서 불필요한 작업을 줄입니다.

 

컴퓨터 사양에 따라 슬라이더 또는 차트 이동을 통한 화면 전환 시 버벅거릴 수 있습니다.
그런 경우 다음 Variable들의 값을 하향 조정하는 것으로 차트에 그리는 오브젝트를 단순화해야 합니다.

반대로 좀 더 그려도 속도 저하가 없을 정도로 컴퓨터 사양이 좋다면, 다음 값들을 기본보다 크게 설정할 수도 있습니다.

  • limit_candle: 화면에 그리는 캔들의 최대 개수. 이를 벗어나면 캔들이 아닌 심지만을 그립니다. 기본값은 800입니다.
  • limit_wick: 화면에 그리는 심지의 최대 개수. 이를 벗어나면 심지가 아닌 종가 선형차트를 그립니다. 기본값은 4,000입니다.
  • limit_volume: 심지 또는 종가 선형차트를 그릴 때 화면에 그리는 거래량 바의 최대 개수. 기본값은 200입니다.
    ※ limit_volume은 SliderChart에서만 적용됩니다.
  • limit_ma: 종가 선형차트에서 표시하는 데이터 수가 이 값보다 많으면 가격이동평균선을 그리지 않습니다. 기본값은 8,000입니다.
    ※ limit_ma는 SliderChart에서만 적용됩니다.

 

캔들에서 심지로 전환

 

심지에서 종가 선형차트로 전환

 

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    limit_candle = 800
    limit_volume = 800
    limit_wick = 4000
    limit_ma = 8000

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

최소 조회 영역

 

네비게이터로 선택 가능한 영역에 표현되는 캔들의 수가 "min_distance"보다 작은 경우, 조회 영역을 변경하지 안습니다.
최소 조회 범위를 변경하고 싶다면 해당 값을 변경여야 합니다. 기본 값은 30입니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    min_distance = 30

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

슬라이더 위치 변경방법

 

"slider_top"의 값이 참이 아니면 슬라이더는 차트 하단에 위치합니다. 기본값은 True입니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    slider_top = False

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

차트 비율 변경

"ratio_ax_slider", "ratio_ax_legend", "ratio_ax_price", "ratio_ax_volume", "ratio_ax_none"의 값을 통해 각 차트 영역의 비율을 변경할 수 있습니다.
"ratio_ax_none"은 "slider_top"의 값이 거짓일 때만 사용됩니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    ratio_ax_slider, ratio_ax_legend, ratio_ax_price, ratio_ax_volume = (3, 1, 3, 3)
    ax_none = 2

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

가격이동평균선을 캔들 위에 그리기

 

"candle_on_ma"의 값이 거짓이면 가격이동평균선이 캔들 위에 그려집니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    candle_on_ma = False

file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

이벤트 제어 방법

seolpyo-mplchart는 pick event, draw event, mouse click/release/move event를 받습니다.
각각의 event가 발생한 경우 다음 method를 호출합니다.

이벤트 발생시 필요한 작업이 있다면 다음 method들을 orverride하여 제어할 수 있으며, 각 method를 override하더라도 모듈의 이벤트 제어에는 영향을 주지 않습니다.
또한 draw_artist method를 통해 blit 전에 그려야 하는 artist 작업을 추가할 수 있습니다.

import json

import seolpyo_mplchart as mc
import pandas as pd


class Chart(mc.SliderChart):
    def on_draw(self, e):
        return

    def on_pick(self, e):
        return

    def draw_artist(self):
        return

    def on_move(self, e):
        return

    def on_click(self, e):
        return

    def on_release(self, e):
        return



file = {stock price data path}
with open(file, 'r', encoding='utf-8') as txt:
    data = json.load(txt)
df = pd.DataFrame(data)

c = Chart()
c.set_data(df)

mc.show()

 

 






추천 (0)


글 목록

댓글을 달 수 없는 게시물입니다.


"분류없음" 카테고리의 #Python 관련 게시물

분류없음
예제)특정 조합이 리스트 요소에 반드시 포함되어야 한다는 사실만 알 때의 조건식
수정 08.20 | [관리자] 하얀설표
👍 0
#Python, #예제
🗨️ 0
썸네일
분류없음
주식시장 개장일과 휴장일 정보를 간단하게 가져오는 방법(엑셀, 파이썬)
수정 07.20 | [관리자] 하얀설표
👍 0
#Python, #주식
🗨️ 0
분류없음
해결) 장고 bulk_update의 메모리 누수 문제(django orm bluk_update method memory leak)
수정 07.12 | [관리자] 하얀설표
👍 0
#Python, #Django
🗨️ 0
분류없음
해결) django.db.utils.OperationalError: database is locked
수정 06.18 | [관리자] 하얀설표
👍 0
#Python, #에러해결, #Django
🗨️ 0
분류없음
악성 크롤러를 괴롭히는 방법
수정 05.18 | [관리자] 하얀설표
👍 0
#Python, #Django
🗨️ 0
분류없음
장고) 모든 방문자에게 세션 부여하기(anonymous user session)
수정 05.15 | [관리자] 하얀설표
👍 0
#Python, #Django
🗨️ 0
썸네일
분류없음
한국거래소의 수정주가 계산 공식을 알아보자
수정 05.10 | [관리자] 하얀설표
👍 0
#Python, #주식
🗨️ 0
썸네일
분류없음
파이썬으로 연속 조회가 가능한 주식 차트 만들기(tkinter, seolpyo-mplchart)
수정 05.08 | [관리자] 하얀설표
👍 0
#Python
🗨️ 0
썸네일
분류없음
seolpyo-mplchart document
수정 05.08 | [관리자] 하얀설표
👍 0
#Python
🗨️ 0
분류없음
tkinter) 단어 자동완성 기능 만들기(autocomplete word suggest)
작성 01.20 | [관리자] 하얀설표
👍 0
#Python
🗨️ 0