[DASH] Plotly Basic Chart
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()
댓글남기기