본문 바로가기

Data Visualization/Plotly

[plotly] annotation(주석) 넣기

728x90

참고 사이트: https://plotly.com/python/text-and-annotations/

상세 옵션: https://plotly.com/python/reference/#layout-annotations

 

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(
    go.Bar(
        x=merged_order_month_sum_from2017.index, 
        y=merged_order_month_sum_from2017['payment_value'], 
        text=merged_order_month_sum_from2017['payment_value'], 
        textposition='auto', 
        texttemplate='R$ %{y:,.0f}',
        marker_color=colors
    )
)
fig.update_layout(
    {
        "title": {
            "text": "<b>Turnover per Month in Brazilian Olist E-Commerce company</b>",
            "x": 0.5,
            "y": 0.9,
            "font": {
                "size": 15
            }
        },
        "xaxis": {
            "title": "from Jan. 2017 to Sep. 2018",
            "showticklabels":True,
            "tick0": "2017-01-31",
            "dtick": "M1",
            "tickfont": {
                "size": 7                
            }
        },
        "yaxis": {
            "title": "Turnover per Month",
            "tickfont": {
                "size": 10                
            }
        },
        "template":'plotly_white'
    }
)

fig.add_annotation(
            x="2017-11-30", # x 축 기준 주석 위치
            y=1153393, # y 축 기준 주석 위치
            text="<b>Peaked Monthly Turnover</b>",
            showarrow=True, # 화살표 표시 여부
            font=dict( # 주석 폰트
                size=10,
                color="#ffffff"
                ),
            align="center", # 정렬
            arrowhead=2, # 화살표 머리 크기
            arrowsize=1, # 화살표 크기
            arrowwidth=2, # 화살표 넓이
            arrowcolor="#77CFD9", # 화살표 색상
            ax=20, #박스 위치 가로
            ay=-30,# 박스 위치 세로
            bordercolor="#77CFD9", # 주석 테두리 색상
            borderwidth=2, # 주석 테두리 크기
            borderpad=10, # 주석칸 크기
            bgcolor="#F25D50", # 배경색
            opacity=0.9 # 투명도
)

fig.show()

728x90