TWIG::2020.07.07

Today lolol·2020년 7월 7일
0

TWIG

목록 보기
2/17

프로젝트의 끝은 멀고도 험한 것 같다... 👷🏼‍♂️

뭔가 여러가지 했으나 적을만한 내용이 이것밖에 기억이 안난다.

- 장동선 | 뇌과학박사

인간은 누구나 보호받고 싶고, 안정적이고 싶어한다.
마치 가재나 게와 같은 갑각류와 유사한 것이다.

안정적이고 튼튼한 껍데기를 갖고 있어서 쉽게 다치지 않지만
성장하기 위해서는 껍데기를 벗고 연약한 속살을 바깥으로 꺼내야한다.

프란츠 카프카는 이렇게 말했다고 한다. - 댓글 중
"휘어진 그림자를 원망하면 안 된다. 휘어진 내 몸을 펴야만 한다."

인생을 사는 것은 마치, 하루를 사는 것 같다.
해가 지고 밤이 찾아오고 온도가 떨어지면 우리의 몸은 차가워지겠지만
다시 내일 해가 뜰 것을 알고 내일을 준비한다.
밤은 우리를 힘들게 하겠지만, 밤 시간을 잘보내야 해가 떴을 때
비로소 우리가 하고자하는 행동을 할 수 있을 것이다.


- Plotly

https://plotly.com/

import matplotlib.pyplot as plt

기존에 사용하던 matplotlib에서 그래프를 좀 더 효과적으로 사용하고 싶었고, 좀 더 많은 기능이 요구되었기 때문에 plotly로 넘어가게 되었다.

import plotly.graph_objects as go

ploty는 크게 2가지로 파트로 나누어 볼 수 있는데
DashGraphing이라고 볼 수 있을 것이다. ~페이지에는 graphing libraries라고 적혀있는데, 오타가 아닌 것 같다.~

  1. https://dash.plotly.com/
  2. https://plotly.com/graphing-libraries/

(url구조를 보면 초기에 dash를 먼저 생각해두고 만들어진 것 같다.)

matplotlib과의 가장 큰 차이점은 reactive and web based인 것이라고 생각된다.
커서 hover에 따라 콘텍스트 메뉴로 값이 출력되고, 결과를 web에서 띄우는 것을 보면 Dash는 웹 기반으로 만들어진 것으로 보인다.

😃 만들고 싶은 그래프가 있다면 아래의 링크에서 원하는 템플릿을 찾아보자.
https://plotly.com/python/

아래의 내용은 이러한 템플릿을 참조해서 작성했다.
https://plotly.com/python/line-and-scatter/#line-and-scatter-plots

- Eg

이제 코드를 보자. ( 👍🏼 간단하다)

import plotly.graph_objects as go

fig = go.Figure()

figure를 생성하여, 그래프의 토대를 생성한다.

fig.add_trace(go.Scatter(x=cc_xAxis, y=cc_yAxis,
                                 mode='markers',
                                 name='분기별 기울기',
                                 fillcolor='#0d47a1'))
        # 평균 (기준) 기울기 값
        fig.add_trace(go.Scatter(x=cc_xAxis, y=aLine,
                                 mode='lines',
                                 name='평균(기준) 기울기', fillcolor='#ef5350'))

선언된 figadd_trace()를 통해 트레이스를 추가해주는 것을 볼 수 있다.

matplotlib와의 차이점은 그리려고 하는 각각의 axis를 모두 지정해준다는 것으로 보여진다. (matplotlib도 얕게 써봐서 차이점이라고 하긴 애매하다. 아마 plotly와 같은 기능 지원은 있을 것으로 생각된다.)

표현되는 데이터들은 trace라고 부른다.

Scatter() 메소드의 매개변수에 대한 설명은 아래의 링크를 참조하면 된다.
https://plotly.com/python/reference/
그러나 위에서 언급된 기능만 사용해도, 기본적인 기능은 충족한다.

- Vertical line

세로로 선을 만들어서, 구분자로 표시하는 기능을 구현하고 했는데
shape를 이용하여 만들었기 때문에, hover시에 값을 출력하진 않는다.

fig.add_shape(
                # Line Vertical
                dict(
                    type="line",
                    x0=_x,
                    y0=0,
                    x1=_x,
                    y1=verticalLineHeight,
                    line=dict(
                        color='#8bc34a',
                        width=1
                    )
                ), name='divide-line')

코드에서 사용된 _x, verticalLineHeight 모두 scalar 값이다.

색을 바꿀 수 있다는게 너무 매력적이다... 🐶


- Additional Info

정리된 pdf파일을 찾았다.
참고용으로 사용해야겠다.
https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf


profile
working making doing makes us 🤖

0개의 댓글