### 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') ################################################################################