### DataVL1.txt Ver.2024.01.10
### 作成者:Masaya Matsuura, Ehime University
### Pythonのスクリプト
### 同時配布のPDFファイル(DataVL.pdf)p45~p122で紹介しているグラフ・チャート作成用
###Google Colaboratory上で動作確認
#################スライドP45 スクリプト1. 折れ線グラフ########################
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10])).show()
#################スライドP46 スクリプト2. 面グラフ############################
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],fill='tozeroy')).show()
#################スライドP46 スクリプト2.(別バージョン) 面グラフ############
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],stackgroup=1)).show()
#################スライドP47 スクリプト3. 積み上げ面グラフ####################
import plotly.graph_objects as go
go.Figure([go.Scatter(x=[1,2,3],y=[5,15,10],stackgroup=1),
go.Scatter(x=[1,2,3],y=[6,2,8],stackgroup=1)]).show()
#################スライドP48 スクリプト4. 棒グラフ############################
import plotly.graph_objects as go
go.Figure(go.Bar(x=['A','B','C'],y=[5,15,10])).show()
#################スライドP49 スクリプト5. 集合棒グラフ########################
import plotly.graph_objects as go
go.Figure([go.Bar(x=['A','B','C'],y=[5,15,10]),
go.Bar(x=['A','B','C'],y=[8,4,12])]).show()
#################スライドP50 スクリプト6. 積み上げ棒グラフ####################
import plotly.graph_objects as go
go.Figure([go.Bar(x=['A','B'],y=[5,8]),go.Bar(x=['A','B'],y=[3,2])],
layout=go.Layout(barmode='stack')).show()
#################スライドP51 スクリプト7. 滝グラフ############################
import plotly.graph_objects as go
go.Figure(go.Waterfall(x=['A','B','C','D'],y=[10,5,-8,7],
measure=['a','r','r','t'])).show()
#################スライドP52 スクリプト8. ファンネルチャート##################
import plotly.graph_objects as go
go.Figure(go.Funnel(x=[100,70,40],y=['A','B','C'])).show()
#################スライドP53 スクリプト9. 円グラフ############################
import plotly.graph_objects as go
go.Figure(go.Pie(labels=['A','B','C'],values=[5,15,10])).show()
#################スライドP54 スクリプト10. ドーナツグラフ#####################
import plotly.graph_objects as go
go.Figure(go.Pie(labels=['A','B','C'],values=[5,15,10],hole=0.5)).show()
#################スライドP55 スクリプト11. サンバーストグラフ#################
import plotly.graph_objects as go
go.Figure(go.Sunburst(labels=['A','B','C','D','E','F'],
parents=['','','A','A','B','B'],
values=[8,2,5,3,1,1],branchvalues='total')).show()
#################スライドP56 スクリプト12. ツリーマップ#######################
import plotly.graph_objects as go
go.Figure(go.Treemap(labels=['A','B','C','D','E','F'],
parents=['','','A','A','B','B'],
values=[8,2,5,3,1,1],branchvalues='total')).show()
#################スライドP57 スクリプト13. ワッフルチャート###################
import plotly.graph_objects as go
import numpy as np
p=np.zeros(100)
p[56:]=1
go.Figure(go.Heatmap(z=p.reshape(10,10),xgap=3,ygap=3)).show()
#################スライドP58 スクリプト14. 散布図#############################
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],mode='markers')).show()
#################スライドP59 スクリプト15. バブルチャート#####################
#デフォルトで、円の「大きさ」が「半径」に設定されている
#人間は直観的に、半径などの「長さ」ではなく、「面積」で判断する傾向にあるので要注意
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],mode='markers',
marker_size=[100,30,20])).show()
#################スライドP59 スクリプト15. バブルチャート#####################
#円の「大きさ」を円の「面積」に変更
import plotly.graph_objects as go
go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],mode='markers',
marker_size=[100,30,20],
marker_sizemode='area')).show()
#################スライドP60 スクリプト16. 散布図行列#########################
import plotly.graph_objects as go
go.Figure(go.Splom(dimensions=[dict(label='A',values=[1,2,3]),
dict(label='B',values=[5,15,10]),
dict(label='C',values=[10,3,2])])).show()
#################スライドP61 スクリプト17. 3次元分布図########################
import plotly.graph_objects as go
go.Figure(go.Scatter3d(x=[1,2,3],y=[5,15,10],z=[100,30,20],mode='markers')).show()
#################スライドP62 スクリプト18. 三角図#############################
import plotly.graph_objects as go
go.Figure(go.Scatterternary(a=[1,2,3],b=[5,15,10],c=[10,3,2],mode='markers')).show()
#################スライドP63 スクリプト19. ヒストグラム#######################
import plotly.graph_objects as go
go.Figure(go.Histogram(x=[1,4,3,7,4,3,1,0,3,2,5,6])).show()
#################スライドP64 スクリプト20. 人口ピラミッド#####################
import plotly.graph_objects as go
go.Figure([go.Bar(y=['~29','30~59','60~'],x=[-39,-58,-32],orientation = 'h'),
go.Bar(y=['~29','30~59','60~'],x=[36,53,38],orientation = 'h')],
layout=go.Layout(barmode = 'relative',bargap = 0.0)).show()
#################スライドP65 スクリプト21. 密度プロット#######################
import plotly.graph_objects as go
go.Figure(go.Violin(x=[1,4,3,7,4,3,1,0,3,2,5,6],side='positive')).show()
#################スライドP66 スクリプト22. 箱ひげ図###########################
import plotly.graph_objects as go
go.Figure(go.Box(y=[1,4,3,7,4,3,1,0,3,2,5,6])).show()
#################スライドP67 スクリプト23. バイオリン図#######################
import plotly.graph_objects as go
go.Figure(go.Violin(y=[1,4,3,7,4,3,1,0,3,2,5,6])).show()
#################スライドP68 スクリプト24. レーダーチャート###################
import plotly.graph_objects as go
go.Figure(go.Scatterpolar(theta=['A','B','C','D','E'],r=[5,15,10,8,12])).show()
#################スライドP69 スクリプト25. ポーラーチャート###################
import plotly.graph_objects as go
go.Figure(go.Barpolar(theta=['A','B','C','D','E'],r=[5,15,10,8,12])).show()
#################スライドP70 スクリプト26. デンドログラム#####################
import plotly.figure_factory as ff
import numpy as np
d=[[1,2,3],[2,3,2],[9,8,6],[8,9,9]]
ff.create_dendrogram(np.array(d),labels=['A','B','C','D']).show()
#################スライドP71 スクリプト27. 平行座標プロット###################
import plotly.graph_objects as go
go.Figure(go.Parcoords(dimensions=[dict(label='項目A',values=[5,15,10]),
dict(label='項目B',values=[8,4,12]),
dict(label='項目C',values=[3,8,2])])).show()
#################スライドP72 スクリプト28. ヒートマップ#######################
import plotly.graph_objects as go
go.Figure(go.Heatmap(x=['A','B','C'],y=['a','b'],z=[[3,2,5],[4,1,6]])).show()
#################スライドP73 スクリプト29. 階級区分図#########################
import plotly.graph_objects as go
go.Figure(go.Choropleth(locations=['JPN','SWE','USA'],z=[15,40,30])).show()
#################スライドP74 スクリプト30. 比例シンボルマップ#################
#デフォルトで、円の「大きさ」が「半径」に設定されている
#人間は直観的に、半径などの「長さ」ではなく、「面積」で判断する傾向にあるので要注意
import plotly.graph_objects as go
go.Figure(go.Scattergeo(locations=['JPN','SWE','USA'],marker_size=[15,40,30])).show()
#################スライドP74 スクリプト30. 比例シンボルマップ#################
#円の「大きさ」を円の「面積」に変更
import plotly.graph_objects as go
go.Figure(go.Scattergeo(locations=['JPN','SWE','USA'],marker_size=[15,40,30],
marker_sizemode='area')).show()
#################スライドP75 スクリプト31. ワードクラウド#####################
import plotly.graph_objects as go
from wordcloud import WordCloud
text='''Nordic region consists of 5 countries (Denmark, Finland, Iceland, Norway
and Sweden) and 3 autonomous territories (Faroe Islands, Greenland and Åland).'''
go.Figure(go.Image(z=WordCloud().generate(text))).show()
################################################################################
################################################################################
#################スライドP79 折れ線グラフ######################################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10]))
fig.show()
#################スライドP80 折れ線グラフ(レイアウト調整1)###################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10]))
fig.update_layout(font_size=25,
title='グラフのタイトル',
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP81 折れ線グラフ(レイアウト調整2)###################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10]))
fig.update_layout(font_size=25,
title='グラフのタイトル',
xaxis=dict(title='横軸の説明',
range=(0.5,3.5),dtick=1,
tickformat='.1f'),
yaxis=dict(title='縦軸の説明',
range=(0,16),dtick=4,tickformat='.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.update_traces(marker=dict(size=20),line=dict(width=5))
fig.show()
#################スライドP82 折れ線グラフ(レイアウト調整3)###################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],name='A'))
fig.add_trace(go.Scatter(x=[1,2,3],y=[8,11,7],name='B'))
fig.add_trace(go.Scatter(x=[1,2,3],y=[10,5,12],name='C'))
fig.update_layout(font_size=25,
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明',
range=(0.5,3.5),dtick=1,tickformat='.1f'),
yaxis=dict(title='縦軸の説明',
range=(0,16),dtick=4,tickformat='.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.update_traces(marker=dict(size=20),line=dict(width=5))
fig.show()
#################スライドP83 折れ線グラフ(レイアウト調整4)###################
import plotly.graph_objects as go
c=['saddlebrown','red','blue','wheat']
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],name='A',
marker=dict(color=c[0]),line=dict(color=c[0])))
fig.add_trace(go.Scatter(x=[1,2,3],y=[8,11,7],name='B',
marker=dict(color=c[1]),line=dict(color=c[1])))
fig.add_trace(go.Scatter(x=[1,2,3],y=[10,5,12],name='C',
marker=dict(color=c[2]),line=dict(color=c[2])))
fig.update_layout(font_size=25,
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明',
range=(0.5,3.5),dtick=1,tickformat='.1f'),
yaxis=dict(title='縦軸の説明',
range=(0,16),dtick=4,tickformat='.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor=c[3])
fig.update_traces(marker=dict(size=20),line=dict(width=5))
fig.show()
#################スライドP85 積み上げ面グラフ(レイアウト調整)################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],stackgroup=1,
line=dict(color='orange'),name='A'))
fig.add_trace(go.Scatter(x=[1,2,3],y=[6,2,8],stackgroup=1,
line=dict(color='green'),name='B'))
fig.update_layout(font_size=25,
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明',gridcolor='lightgrey',
range=(0.5,3.5),dtick=1,tickformat='.1f'),
yaxis=dict(title='縦軸の説明',gridcolor='lightgrey',
range=(0,20),dtick=4,tickformat='.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor='white')
fig.update_traces(marker=dict(size=20),line=dict(width=5))
fig.show()
#################スライドP86 棒グラフ(レイアウト調整)########################
import plotly.graph_objects as go
fig=go.Figure(go.Bar(x=['A','B','C'],y=[5,15,10],width=0.7))
fig.update_layout(font_size=25,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',range=(0,20),dtick=5,tickformat=',.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor='rgb(165,200,255)')
fig.show()
#################スライドP87 集合棒グラフ(レイアウト調整)####################
import plotly.graph_objects as go
fig=go.Figure(go.Bar(x=['A','B','C'],y=[5,15,10],width=0.4,name='a'))
fig.add_trace(go.Bar(x=['A','B','C'],y=[8,4,12],width=0.4,name='b',
marker_color='indianred'))
fig.update_layout(font_size=25,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',range=(0,20),dtick=5,tickformat=',.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP88 積み上げ棒グラフ(レイアウト調整)################
import plotly.graph_objects as go
fig=go.Figure(go.Bar(x=['A','B'],y=[5,8],width=0.7,name='a'))
fig.add_trace(go.Bar(x=['A','B'],y=[3,2],width=0.7,name='b',marker_color='indianred'))
fig.update_layout(barmode='stack',
font_size=25,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',
range=(0,12),dtick=5,tickformat=',.1f'),
width=600,height=500,
margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP89 滝グラフ(レイアウト調整)########################
import plotly.graph_objects as go
fig=go.Figure(go.Waterfall(x=['A','B','C','D'],y=[10,5,-8,7],
measure=['a','r','r','t'],
increasing=dict(marker=dict(color='#95E395')),
decreasing=dict(marker=dict(color='#FFC5CF')),
totals = dict(marker=dict(color='#82CDF6')),
connector = dict(line=dict(width=4, color='#BBCDE7'))))
fig.update_layout(font_size=25,
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',range=(0,16),dtick=5),
width=800,height=500,
margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP90 ファンネルチャート(レイアウト調整)##############
import plotly.graph_objects as go
fig=go.Figure(go.Funnel(x=[100,70,40],y=['A','B','C'],
marker=dict(color='sienna'),
texttemplate=
'%{label}
%{value:,.0f}人(%{percentInitial:,.3p})'))
fig.update_layout(font_size=25,font_color='sienna',
title=dict(text='グラフのタイトル',x=0.5),
yaxis=dict(title='縦軸の説明',showticklabels=False),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10),
plot_bgcolor='wheat')
fig.show()
#################スライドP91 円グラフ(レイアウト調整)########################
import plotly.graph_objects as go
fig=go.Figure(go.Pie(labels=['A','B','C'],values=[5,15,10],
direction='clockwise',
textinfo='value+percent',
marker=dict(colors=['beige','mistyrose','powderblue'],
line=dict(color='lightgrey',width=4))))
fig.update_layout(font_size=25,font_color='grey',
title=dict(text='グラフのタイトル',x=0.45),
width=500,height=500,
margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP92 ドーナツグラフ(レイアウト調整)##################
import plotly.graph_objects as go
fig=go.Figure(go.Pie(labels=['A','B','C'],values=[5,15,10],hole=0.5,
direction='clockwise',
textinfo='value+percent',
marker=dict(colors=['beige','mistyrose','powderblue'],
line=dict(color='lightgrey',width=4))))
fig.update_layout(font_size=25,font_color='grey',
title=dict(text='グラフのタイトル',x=0.45),
annotations=[dict(text='グラフの
サブタイトル',x=0.5,y=0.5,
showarrow=False)],
width=500,height=500,
margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP93 サンバーストグラフ(レイアウト調整)##############
import plotly.graph_objects as go
fig=go.Figure(go.Sunburst(labels=['A','B','C','D','E','F'],
parents=['','','A','A','B','B'],
values=[8,2,5,3,1,1],branchvalues='total',
insidetextorientation='horizontal',
insidetextfont=dict(color='grey'),
textinfo='label+percent root',
marker=dict(colors=['powderblue','mistyrose','beige',
'honeydew','linen','lavender'],
line=dict(color='lightgrey',width=4))))
fig.update_layout(font_size=25,font_color='grey',
title=dict(text='グラフのタイトル',x=0.5),
width=500,height=500,
margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP94 ツリーマップ(レイアウト調整)####################
import plotly.graph_objects as go
fig=go.Figure(go.Treemap(labels=['A','B','C','D','E','F'],
parents=['','','A','A','B','B'],
values=[8,2,5,3,1,1],branchvalues='total',
insidetextfont=dict(color='grey'),
textinfo='label+value+percent root',
marker=dict(colors=['powderblue','mistyrose','beige',
'honeydew','linen','lavender'],
line=dict(color='lightgrey',width=4))))
fig.update_layout(font_size=25,font_color='grey',
title=dict(text='グラフのタイトル',x=0.5,y=0.98),
width=500,height=500,
margin=dict(t=10,l=10,r=10,b=10))
fig.show()
#################スライドP95 ワッフルチャート(レイアウト調整)################
import plotly.graph_objects as go
import numpy as np
p=56
w=np.zeros(100)
w[:p]=1
n=[str(i) for i in range(1,11)]
c=['rgb(240,220,180)','rgb(200,140,45)']
if p>99: c[0]='rgb(200,140,45)'
fig=go.Figure(go.Heatmap(x=n,y=n,z=w.reshape(10,10),
colorscale= [[0,c[0]],[0.5,c[0]],[1,c[1]]],
xgap=3,ygap=3,showscale=False))
fig.update_layout(font_size=30,font_color=c[1],
width=570, height=600,margin=dict(t=0,l=0,r=0,b=0),
plot_bgcolor="white",
yaxis=dict(scaleanchor='x'),
annotations=[dict(text=str(p)+'%',x=4.5,y=10.0,showarrow=False)])
fig.show()
#################スライドP96 散布図(レイアウト調整)##########################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],mode='markers',marker_size=20))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明',
range=(0.5,3.5),dtick=1,tickformat=',.1f'),
yaxis=dict(title='縦軸の説明',
range=(0,16),dtick=5,tickformat=',.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP97 バブルチャート(レイアウト調整)##################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10],mode='markers',
marker=dict(size=[100,30,20],sizemode='area',sizeref=0.1)))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明',
range=(0.5,3.5),dtick=1,tickformat=',.1f'),
yaxis=dict(title='縦軸の説明',
range=(0,16),dtick=5,tickformat=',.1f'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP98 散布図行列(レイアウト調整)######################
import plotly.graph_objects as go
data=[dict(label='A',values=[1,2,3]),dict(label='B',values=[5,15,10]),
dict(label='C',values=[10,3,2])]
fig=go.Figure(go.Splom(dimensions=data,marker=dict(size=10)))
fig.update_layout(xaxis1=dict(dtick=1),xaxis2=dict(dtick=5),xaxis3=dict(dtick=3),
yaxis1=dict(dtick=1),yaxis2=dict(dtick=5),yaxis3=dict(dtick=3),
font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55),
width=600,height=500,
margin=dict(t=70,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP99 3次元分布図(レイアウト調整)#####################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter3d(x=[1,2,3],y=[5,15,10],z=[100,30,20],mode='markers'))
fig.update_layout(font_size=18,title=dict(text='グラフのタイトル',
font=dict(size=35),x=0.5,y=0.95),
scene=dict(xaxis=dict(title='横軸の説明',titlefont=dict(size=35),
range=[0,3.2],tickvals=[0,1,2,3],
backgroundcolor='rgb(200,220,255)'),
yaxis=dict(title='縦軸の説明',titlefont=dict(size=35),
range=[0,18],tickvals=[0,5,10,15],
backgroundcolor='rgb(200,220,255)'),
zaxis=dict(title='高さ軸の説明',titlefont=dict(size=35),
range=[0,120],tickvals=[0,40,80,120],
backgroundcolor='rgb(200,220,255)'),
camera=dict(eye=dict(x=1.5, y=1.3, z=1.3))),
width=650,height=600,margin=dict(t=0,l=0,r=0,b=0))
fig.show()
#################スライドP100 三角図(レイアウト調整)#########################
import plotly.graph_objects as go
tv=[0,0.2, 0.4, 0.6,0.8,1]
tt=[' 0 ',' 0.2 ', ' 0.4 ',' 0.6 ',' 0.8 ',' 1 ']
c=['darkblue','#CC0066','darkgreen']
fig=go.Figure(go.Scatterternary(a=[1,2,3],b=[5,15,10],c=[10,3,2],
mode='markers',marker_size=15))
fig.update_layout(font_size=28,title=dict(text='グラフのタイトル',x=0.5),
width=580,height=600,margin=dict(t=70,l=50,r=50,b=30),
ternary=dict(aaxis=dict(tickfont=dict(color=c[0]),
title=dict(text='A',font=dict(color=c[0])),
tickvals=tv,ticktext=tt),
baxis=dict(tickfont=dict(color=c[1]),
title=dict(text='B',font=dict(color=c[1])),
tickvals=tv,ticktext=tt),
caxis=dict(tickfont=dict(color=c[2]),
title=dict(text='C',font=dict(color=c[2])),
tickvals=tv,ticktext=tt)))
fig.show()
#################スライドP101 ヒストグラム(レイアウト調整)###################
import plotly.graph_objects as go
fig=go.Figure(go.Histogram(x=[1,4,3,7,4,3,1,0,3,2,5,6],
xbins=dict(start=0,end=7,size=2),marker=dict(opacity=0.7)))
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55),
xaxis = dict(title='横軸の説明',
tickvals=[1,3,5,7],
ticktext=['0-1','2–3','4–5','6–7']),
yaxis=dict(title='縦軸の説明',dtick=1),
bargap=0.2,
width=600,height=500,
margin=dict(t=70,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP102 人口ピラミッド(レイアウト調整)#################
import plotly.graph_objects as go
fig=go.Figure([go.Bar(name='男性',y=['~29','30~59','60~'],
x=[-39,-58,-32],orientation='h',marker=dict(opacity=0.7)),
go.Bar(name='女性',y=['~29','30~59','60~'],
x=[36,53,38],orientation='h',
marker=dict(color='darkorange',opacity=0.7))])
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.5,y=0.97),
barmode='relative',bargap=0.0,
xaxis=dict(title='横軸の説明',
tickvals=[-50,-25,0,25,50],
ticktext=[50,25,0,25,50]),
yaxis=dict(title='縦軸の説明'),
width=600,height=450,
margin=dict(t=60,l=45,r=15,b=40),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP103 密度プロット(レイアウト調整)###################
import plotly.graph_objects as go
fig=go.Figure(go.Violin(x=[1,4,3,7,4,3,1,0,3,2,5,6],name='A',
orientation='h',side='positive'))
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.6),
xaxis=dict(title='横軸の説明',dtick=2,range=(-4,11)),
yaxis=dict(title='縦軸の説明',range=(-0.02,0.3),showgrid=True,
tickvals=[0,0.1,0.2,0.3],ticktext=['0','0.1','0.2','0.3']),
width=600,height=500,margin=dict(t=70,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP104 箱ひげ図(レイアウト調整)#######################
import plotly.graph_objects as go
fig=go.Figure(go.Box(y=[1,4,3,7,4,3,1,0,3,2,5,6],name='A'))
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',dtick=2,range=(-1,8)),
width=500,height=500,margin=dict(t=70,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP105 バイオリンプロット(レイアウト調整)#############
import plotly.graph_objects as go
fig=go.Figure(go.Violin(y=[1,4,3,7,4,3,1,0,3,2,5,6],name='A',
box_visible=True,points='all'))
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明',dtick=2,range=(-4,11)),
width=500,height=500,margin=dict(t=70,l=10,r=10,b=10),
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP106 レーダーチャート(レイアウト調整)###############
import plotly.graph_objects as go
fig=go.Figure(go.Scatterpolar(theta=['A','B','C','D','E','A'],r=[5,15,10,8,12,5],
line=dict(width=4),marker=dict(size=15)))
fig.update_layout(font_size=30,font_color='darkblue',
polar=dict(radialaxis=dict(visible=True,range=[0,18],showline=False,
tickvals=[0,4,8,12,16],
tickfont=dict(size=30,color='darkblue')),
angularaxis=dict(tickfont = dict(size = 30,color='darkblue')),
bgcolor='rgb(210,230,255)',
angularaxis_rotation=90,
gridshape='linear'),
title=dict(text='グラフのタイトル',x=0.5),
width=600,height=680,margin=dict(t=75,l=20,r=20,b=0))
fig.show()
#################スライドP107 ポーラーチャート(レイアウト調整)###############
import plotly.graph_objects as go
fig=go.Figure(go.Barpolar(theta=['A','B','C','D','E'],r=[5,15,10,8,12],
marker=dict(opacity=0.3)))
fig.update_layout(font_size=30,font_color='darkblue',
polar=dict(radialaxis=dict(visible=True,range=[0,18],showline=False,
tickvals=[0,4,8,12,16],
tickfont=dict(size=30,color='darkblue')),
angularaxis=dict(tickfont = dict(size = 30,color='darkblue')),
bgcolor='rgb(210,230,255)',
angularaxis_rotation=90),
title=dict(text='グラフのタイトル',x=0.5),
width=600,height=680,margin=dict(t=75,l=20,r=20,b=0))
fig.show()
#################スライドP108 デンドログラム(レイアウト調整)#################
import plotly.figure_factory as ff
import numpy as np
d=[[1,2,3],[2,3,2],[9,8,6],[8,9,9]]
c=['blue','red','darkorange','darkturquoise''green',
'darkgoldenrod','mediumvioletred','darkslateblue']
fig=ff.create_dendrogram(np.array(d),labels=['A','B','C','D'],colorscale=c)
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55,y=0.97),
margin=dict(t=60,l=45,r=15,b=40),
yaxis=dict(title='縦軸の説明',ticks='inside',ticklen=0,dtick=3,
showgrid=True),
xaxis=dict(title='横軸の説明',ticks='',
ticklen=0,range=(0,40)),
barmode='relative',bargap=0.0,
width=600,height=450,
plot_bgcolor='rgb(200,220,255)')
fig.show()
#################スライドP109 平行座標プロット(レイアウト調整)###############
import plotly.graph_objects as go
data=[dict(range=[1,3],tickvals=[3,2,1],ticktext=['a','b','c'],
label='系列名',values=[1,2,3]),
dict(range=[5,15],tickvals=[5,10,15],label='項目A',values=[5,15,10]),
dict(range=[4,12],tickvals=[4,8,12],label='項目B',values=[8,4,12]),
dict(range=[2,8],tickvals=[2,5,8],label='項目C',values=[3,8,2])]
fig=go.Figure(go.Parcoords(dimensions=data,line=dict(color=[1,2,3],
colorscale=[[0,'red'],[0.5,'darkgreen'],[1,'#0066FF']])))
fig.update_layout(font_size=28,font_color='darkblue',
title=dict(text='グラフのタイトル',x=0.55,y=0.97),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明'),
width=600,height=400,
margin=dict(t=120,l=50,r=35,b=40))
fig.show()
#################スライドP110 ヒートマップ(レイアウト調整)###################
import plotly.graph_objects as go
fig=go.Figure(go.Heatmap(x=['A','B','C'],y=['a','b'],z=[[3,2,5],[4,1,6]],
colorscale='Brwnyl'))
fig.update_layout(font_size=25,
title=dict(text='グラフのタイトル',x=0.5),
xaxis=dict(title='横軸の説明'),
yaxis=dict(title='縦軸の説明'),
width=800,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP111 階級区分図(レイアウト調整)#####################
import plotly.graph_objects as go
fig=go.Figure(go.Choropleth(locations=['JPN','SWE','USA'],z=[15,40,30],
colorscale = 'Pinkyl',colorbar_title = '色の説明'))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.4),
width=1000,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP112 比例シンボルマップ(レイアウト調整)#############
import plotly.graph_objects as go
fig=go.Figure(go.Scattergeo(locations=['JPN','SWE','USA'],
marker=dict(size=[15,40,30],color=[15,40,30],
sizemode='area',sizeref=0.1,
colorscale='Rainbow',
colorbar=dict(thickness=20))))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.5),
width=570,height=500,margin=dict(t=65,l=0,r=10,b=10),
geo=dict(projection=dict(type='orthographic',
rotation=dict(lat=80,lon=130)),
showland=True,
landcolor='rgb(250,255,230)',
showlakes=True,
lakecolor='rgb(200,220,255)',
showocean=True,
oceancolor='rgb(200,220,255)',
showcoastlines=True,
resolution=110))
fig.show()
################################################################################
################################################################################
#################スライドP116 エクセルファイルの読み込み#######################
#example.xlsxというファイルをアップロードしておく必要あり
import plotly.graph_objects as go
import pandas as pd
df=pd.read_excel('example.xlsx')
fig=go.Figure(go.Choropleth(locations=df['Country'],z=df['Value'],
colorscale = 'Pinkyl',colorbar_title = '色の説明'))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.4),
width=1000,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP117 CSVファイルの読み込み############################
#example.csvというファイルをアップロードしておく必要あり
import plotly.graph_objects as go
import pandas as pd
df=pd.read_csv('example.csv')
fig=go.Figure(go.Choropleth(locations=df['Country'],z=df['Value'],
colorscale='Pinkyl',colorbar_title='色の説明'))
fig.update_layout(font_size=25,title=dict(text='グラフのタイトル',x=0.4),
width=1000,height=500,margin=dict(t=65,l=10,r=10,b=10))
fig.show()
#################スライドP119 htmlファイルへの出力#############################
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10]))
fig.show()
fig.write_html('abc.html')
#################スライドP122 画像ファイルへの出力(Google Colab用)######
#Google Colabで初回実行時は、下準備として、下記、!pipで始まる2行を実行
#その後、「ランタイムの再起動」を行う
#「ランタイムの再起動」は、上部メニューで「ランタイム」をクリックし、「セッションを再開する」を選択
#下準備終了後、下記、import plotly.graph_objects as go から始まる部分を実行
!pip install kaleido
!pip install -U plotly
#下準備(初回実行時用)
import plotly.graph_objects as go
fig=go.Figure(go.Scatter(x=[1,2,3],y=[5,15,10]))
fig.show()
fig.write_image('abc.png')
################################################################################