본문 바로가기

728x90

전체 글

(95)
PyQt GUI (18) 괜찮은 테마 소개 : qt_material PyQt에서는 별다른 스타일 설정을 하지 않으면, GUI는 회색 혹은 흰색의 색 조합으로 구성 됩니다. 위 이미지는 예전에 만들었던 계산기의 기본 UI 입니다. 흰색, 회색, 조금 더 진한 회색 등으로만 구성 돼 있습니다. GUI와 관련된 10번째 포스팅에서는 회색 UI를 위와 같이 유채색의 UI로 변경하였습니다. 이 포스팅에서는 직접 각 위젯마다 스타일을 정의하고, 각 위젯에다 setStyleSheet 메서드를 통해서 스타일을 설정하였습니다. 이전 포스팅에서 했던것과 같이 모든 GUI의 구성 요소들에다 원하는 스타일을 설정할 수 있지만, 그렇게 하면 (1) 너무 귀찮고, (2) 미적 감각이 없는 경우에는 꾸민 스타일이 이쁘지 않을 수 있다는 문제가 있습니다. (1)의 문제를 해결하기 위해서는 모든 위젯..
PyQt GUI (17) QTreeView를 이용하여 폴더 트리 만들기 + 드래그-앤-드롭 drag-and-drop을 이용하여 파일 이름을 옮기기 이번 포스팅에서는 윈도우 파일 탐색기의 왼쪽 프래임에서 볼 수 있는 폴더 트리를 만들어 보겠습니다. 폴더 트리는 위 탐색기 캡쳐에서 왼쪽 프래임에 있는 것 입니다. 전체 파일/폴더의 구조를 보여줍니다. 이 폴더 트리를 이용하여 파일/폴더의 구조를 파악하거나 파일/폴더를 선택할 수 도 있습니다. 오늘 만들 GUI의 전체 코드는 아래와 같습니다. import sys from PyQt5.QtWidgets import * class QTreeView(QTreeView): def __init__(self): super(QTreeView, self).__init__() def edit(self, index, trigger, event): return False class QLineEdit(QLineEdit): de..
PyQt GUI (16) 테이블 위젯(QTableWidget)으로 표 표시, 수정, 저장하기 많은 데이터를 한 눈에 보기 쉽게 표현하기 위해서는 반드시 표를 사용해야 하는데요, 이번 포스팅에서는 PyQt GUI에서 표와 관련된 위젯을 한 번 사용해 보도록 하겠습니다. 파이썬에서 표 형식의 데이터를 취급하는데 자주 사용되는 Pandas 라이브러리도 함께 사용해 보도록 하겠습니다. 이번 포스팅에서 만들 표가 포함된 QDialog입니다. 레이아웃Layout을 활용하여 위젯들을 원하는 위치에 배치하는 것에 대해서는 지난 포스팅에서 많이 했고, 이번 포스팅에서는 단순히 QTableWidget을 소개하는 것이 목적이기 때문에 위젯의 배치에는 별다른 신경을 쓰지 않았습니다. Load PushButton을 클릭하면, csv형식으로 저장 해 두었던 데이터를 Panda DataFrame의 형태로 불러오고, 이 데..
투사체 궤적의 포락선(envelope function) 구하기 포락선(envelope function)? 포락선이 무엇인지 정의하기 전에, 투사체의 궤적과 관련된 문제를 생각해 보도록 하겠습니다. 지표면의 한 점 (이 점을 원점이라고 생각하면 됩니다)에서 임의이 방향으로 정해진 속력 $v_0$로 물체를 던질 수 있는 장비가 있다고 가정하겠습니다. 한 사람이 이 장비를 이용해서 여러 방향을 물체를 던지고 있습니다. 편의상 지표면에 수직한 방향을 $y$축, 지표면과 나란항 방향 중에 한 방향(예를 들면 동쪽 방향)을 $x$축, $x$축, $y$축과 수직인 방향(예를 들면 남쪽 방향)을 $z$축이라고 하겠습니다. 만일 물체가 $x,y$ 평면으로, $x$축과 이루는 각도가 $\theta$인 방향으로 물체를 던진다고 한다면, 이 때 물체의 궤적은 아래와 같을 것 입니다. 위..
우도 함수(가능도 likelihood function)의 이해 우도 함수(가능도 함수로 번역되기도 하고, 영어로는 likelihood function 이라 합니다)는 실현된 데이터(혹은 관찰된 데이터 observed data)로 부터 특정 통계 모델의 적합성을 확인하는데 주로 이용됩니다. 실현된 데이터를 $y$라고 하고, 특정 통계 모델을 $\theta$라고 표현했을 때, 우도 함수는 $P(y | \theta)$로 정의되는 값 입니다. 이렇게만 쓰면 우도 함수에 대해서 처음 접하신 분이라면 이해가 쉽지 않을 텐데, 가장 간단한 예시를 통해서 우도 함수가 무엇인지, 어떻게 계산을 하는지, 그리고 어떻게 이용될 수 있는지에 대해서 알아 보도록 하겠습니다. 우리가 던진 동전은 어떤 "모양"일까? 동전 던지기를 해서 앞면 혹은 뒷면이 나오는 횟수를 기록했다고 하겠습니다. ..
주식의 정량적 분석 (7) : 미국 주식 투자, 답은 그냥 TQQQ? 전쟁이 나도 상승한다는 나스닥은 2020년 초반 코로나 이슈를 이기고 연일 상승하고 있습니다. 글을 쓰고 있는 2021년 12월 초에는 약간 하락세를 보이고 있긴 하나, 연초와 비교한다면 17%의 상승을 이어가고 있습니다. 상승하는 나스닥에서 보다 높은 수익률을 올리는 방법은 레버리지 ETF를 매수하는 것 인데요, 나스닥 인덱스를 추종하는 레버리지 ETF 중에서 세 배(x3)의 변화를 추종하는 ProShares UltraPro QQQ (이하 TQQQ) 는 국내 투자자들에게도 유명한 ETF입니다. TQQQ는 (세금과 비용을 정산하기 이전을 기준으로) 나스닥-100 인덱스의 변화량의 3배를 추종하도록 만들어진 ETF입니다. 예를들어 어떤 날의 나스닥-100 인덱스가 1% 상승했다면 TQQQ는 3% 상승하게 ..
곡선 위를 따라 움직이는 입자의 운동 방정식 이번 포스팅에서는 위 그림에서와 같이 곡선 위를 따라 움직이는 입자의 운동 방정식을 어떻게 구할 수 있고, 운동 방정식을 수치적인 방법을 통해서 실제로 푸는 방법에 대해서 알아 보도록 하겠습니다. 곡선의 매개 변수화 일반적으로 곡선은 $$\vec{r}(\theta) : \theta \in [a,b] \in \mathbb{R} \rightarrow \vec{r} = (x_1, x_2, ..., x_N) \in \mathbb{R}^N$$ 으로 표현할 수 있습니다. 우리 문제의 경우, 실제 공간은 3차원 이지만 문제를 좀 더 쉽게 하기 위해서 공간을 2차원으로 제한 하도록 하겠습니다. 따라서, 곡선을 기술하는 매개 변수를 $\theta$라고 할 때, $(x(\theta), y(\theta))$로 나타낼 수 있..
주식의 정량적 분석 (6) : 코스피와 나스닥의 커플링은 없다. 미국 시장은 우리나라 시각으로 밤 10시 30분 혹은 11시 30분에 시작 됩니다. 미국 시장의 등락에 따라서 그 다음날 우리나라 주식 시장의 등락을 예상하는 경우가 매우 많습니다. 간밤에 미국 시장이 폭락한다면 한국 시장의 폭락을 걱정하고, 반대로 미국 시장이 폭등한다면 한국 시장의 폭등을 기대하는 경우가 많습니다. 그러나 보통은 예상대로 되지 않을 때가 많습니다. 특히 최근에는 미국 시장이 폭등을 하더라도 그 다음날 한국 시장은 횡보를 하는 경우가 많은데, 그럴 때 마다 한국 시장의 투자자들은 "선반영" 이라는 마법의 단어를 통해 자조 섞인 푸념을 하곤합니다. 여기서 궁금증은 "정말로 미국 시장의 등락과 그 다음날 한국 시장의 등락은 상관관계(커플링)가 있느냐?" 입니다. 쉽게 생각할 때는 미국장의 ..

728x90