3 분 소요

Bar Chart

Bar Chart 기본 구문

import pyplot.graph_objects as go
trace = go.Bar(x = 범주형 , y = 수치형 )
data = [trace]
layout = go. Layout(디자인 옵션)
fig = go.Figure(data, layout)
fig.show()

Bar Chart 예시

데이터 설명

Column : Country(국가), Revenue(매출), Margin(이익), rank(순위)
국가별로 매출 상위 10개 Country를 담은 df

국가별 매출액 Bar Chart

import plotly.graph_objects as go

trace = go.Bar(
    x = df_g1['Country'],
    y = df_g1['Revenue'],
    text = round(df_g1['Revenue'],2))
data = [trace]
layout = go.Layout(title='Chapter2.1 - BarChart')
fig = go.Figure(data,layout)
fig.show()

국가별 매출액 대비 이익액 중첩 Bar Chart

trace1 = go.Bar(
    y = df_g1['Country'],
    x = df_g1['Revenue'],
    name = 'Revenues',
    orientation = 'h')
trace2 = go.Bar(
    y= df_g1['Country'],
    x = df_g1['Margin'],
    name = 'Margins',
    orientation ='h')
data=[trace1, trace2]
layout= go.Layout(title = 'Chapter2.1 - Bar Chart',
                 barmode = 'group',
                 yaxis = dict(autorange='reversed'))
fig = go.Figure(data,layout)
fig.show()

Scatter & Line Chart

Scatter & Line Chart 기본 구문

import pyplot.graph_objects as go
trace = go.Scatter(x = 수치형 , y = 수치형 ,
                  mode = 'markers',
                  marker = dict(size = 크기 ))
data = [trace]
layout = go. Layout(디자인 옵션)
fig = go.Figure(data, layout)
fig.show()
Chart 구분 옵션 내용
Line mode = ‘lines’
Scatter mode = ‘markers’
Scatter & Line mode=’markers + lines’ 점 + 선

Scatter & Line Chart 예시

데이터 설명

Column : year(연), month(월), Revenue(매출)
연도별, 월별 매출 합계 df

연도별 월 매출액 비교 Scatter & Line Chart

data = traces
layout = go.Layout(title='Chaper 2.2 - Scatter & Line Charts',
                  xaxis = dict(title = 'Month'),
                  yaxis = dict(title = 'Revenue'))
fig = go.Figure(data,layout)
fig.show()

Pie Chart

Pie Chart 기본 구문

trace = go.Pie(labels = 범주형 ,
              values = 빈도 )
data = [trace]
layout = go.Layout(디자인 옵션)
fig = go.Figure(data, layout)
fig.show()

Pie Chart 예시

데이터 설명

Column : AgeGroup(연령대), Revenue(매출)
연령대별 매출 합계 df

연령대별 매출액 비교 Pie Chart

trace = go.Pie(
            labels = df_g1['AgeGroup'],
            values = df_g1['Revenue'])
data = [trace]
layout = go.Layout(title = 'Chapter 2.3 - Pie Chart')
fig = go.Figure(data,layout)
fig.show()

연령대별 매출액 비교 Pie Chart (조각분리)

trace = go.Pie(
            labels = df_g1['AgeGroup'],
            values = df_g1['Revenue'],
            pull =[0,0.5,0,0.3,0])
data =[trace]
layout = go.Layout(title = 'Chapter 2.3 - Pie Chart Split')
fig = go.Figure(data, layout)
fig.show()

연령대별 매출액 비교 Pie Chart (label도 함께 표출)

trace = go.Pie(labels = df_g1['AgeGroup'],
              values = df_g1['Revenue'],
              textinfo = 'label+percent',
              insidetextorientation='tangential')
data = [trace]
layout = go.Layout(title = 'Chapter 2.3 - Pie Chart Hole')
fig = go.Figure(data,layout)
fig.show()

연령대별 매출액 비교 Pie Chart (도넛모양)

trace = go.Pie(labels = df_g1['AgeGroup'],
              values = df_g1['Revenue'],
              textinfo = 'label+percent',
              insidetextorientation='tangential',
              hole = 0.5)
data = [trace]
layout = go.Layout(title = 'Chapter 2.3 - Pie Chart Hole')
fig = go.Figure(data,layout)
fig.show()

Sankey Diagram

Sankey Diagram 기본 구문

trace = go.Sankey(node = dict(label = labels),
                  link = dict(source = sources,
                              target = targets,
                              value = values))
data = [trace]
layout = go.Layout(디자인 옵션)
fig = go.Figure(data, layout)
fig.show()

Sankey Diagram 예시

데이터 설명 - 1

Column : Region(대륙), Channel(채널), Category(상품), Revenue(매출)
2020년도의 Africa 채널별 매출 Flow df

Africa에 대한 채널 매출 비교

trace = go.Sankey(node = dict(label =['Africa','Offline','Online'],
                  x = [0,1,1],
                  y= [0,0.1,0.7]),
                  link = dict(source = [0,0],
                             target=[1,2],
                             value=[4015718.1,12342417.5]))
data = trace
layout = go.Layout(title = 'Chapter 2.4 - Sankey Diagram',font_size = 15)
fig = go.Figure(data, layout)
fig.show()

데이터 설명 - 2

Column : Region(대륙), Channel(채널), Category(상품), Revenue(매출)
Region = [‘Afica’, ‘America’, ‘Asia’, ‘Europe’, ‘Oceania’]
Channel = [‘Offline’, ‘Online’]
Category = [‘Beauty & Health’, ‘Clothes’, ‘Foods’, ‘Home’, ‘Office’]

대륙, 채널, 상품별 매출 비교

l_c1 = list(df_g['Region'].unique())
l_c2 = list(df_g['Channel'].unique())
l_c3 = list(df_g['Category'].unique())
labels = l_c1 + l_c2 + l_c3

source1 = list(np.repeat(range(0,len(l_c1)),len(l_c2)))
source2 = list(np.repeat(range(len(l_c1), len(l_c1)+len(l_c2)),len(l_c3)))
sources = source1 + source2

target1 = list(range(len(l_c1),len(l_c1)+len(l_c2)))*len(l_c1)
target2 = list(range(len(l_c1)+len(l_c2),len(l_c1)+len(l_c2)+len(l_c3)))* len(l_c2)
targets = target1 + target2


values = list(value1['Revenue'])+list(value2['Revenue'])
trace = go.Sankey(node = dict(label=labels),
                 link = dict(source = sources,
                            target = targets,
                            value = values))
data = [trace]
layout = go.Layout(title = 'Chapter 2.4 - Sankey Diagram', font_size = 15)
fig = go.Figure(data,layout)
fig.show()

댓글남기기