Python

【Plotlyで棒グラフと表を作成する方法】コーヒー焙煎豆輸入国ランキング

本記事では日本における世界各国からのコーヒー豆の輸入金額・輸入量についてまとめました。

データは財務省貿易統計から取得したものです。

財務省で扱っている検索で必要となるコーヒーの品名コードについてはこちらに載っているので興味のある方はどうぞ

表の作成(国別輸入金額まとめ)

import plotly.graph_objects as go
import pandas as pd

df = pd.read_csv('19-coffee-R.csv')
df=df.sort_values(by='count',ascending=True)
fig = go.Figure(data=go.Bar(x=df['country'], y=df['count']))
fig.update_layout(
    title_text='日本の焙煎後コーヒー豆輸入量',
    yaxis_title_text='数量(kg)', 
    bargap=0.2, #隣接する位置座標のバー間のギャップ
    bargroupgap=0.1 # 同じ位置座標のバー間のギャップ
)
fig.show()

<<おまけ(棒グラフ)>>

棒グラフの作成(国別輸入数量まとめ)

import plotly.graph_objects as go
import pandas as pd

df = pd.read_csv('19-coffee-R.csv')
df=df.sort_values(by='count',ascending=True)
fig = go.Figure(data=go.Bar(x=df['country'], y=df['count']))
fig.update_layout(
    title_text='日本の焙煎後コーヒー豆輸入量',
    yaxis_title_text='数量(kg)', 
    bargap=0.2, #隣接する位置座標のバー間のギャップ
    bargroupgap=0.1 # 同じ位置座標のバー間のギャップ
)
fig.show()

<<おまけ(表)>>

棒グラフと表を並べて整列する

import plotly.figure_factory as ff
import plotly.graph_objects as go
import pandas as pd
import numpy as np
from plotly.subplots import make_subplots

df = pd.read_csv('19-coffee-R.csv')
df=df.sort_values(by='money',ascending=False)

trace1=go.Bar(x=df['country'], y=df['count'],xaxis='x2', yaxis='y2')

df=df.drop("1", axis=1)
df=df.drop("2", axis=1)
df=df.drop("3", axis=1)
df=df.drop("4", axis=1)
df=df.drop("5", axis=1)
df=df.drop("6", axis=1)
df=df.drop("7", axis=1)
df=df.drop("8", axis=1)
df=df.drop("count", axis=1)
df.rename(columns = {'country':'国'}, inplace=True)
df.rename(columns = {'count':'生産量(kg)'}, inplace=True)
df.rename(columns = {'money':'金額(千円)'}, inplace=True)

fig = ff.create_table(df[0:10], height_constant=60)

fig.add_traces([trace1])

# initialize xaxis2 and yaxis2
fig['layout']['xaxis2'] = {}
fig['layout']['yaxis2'] = {}

# Edit layout for subplots
fig.layout.xaxis.update({'domain': [0, .5]})
fig.layout.xaxis2.update({'domain': [0.6, 1.]})

# The graph's yaxis MUST BE anchored to the graph's xaxis
fig.layout.yaxis2.update({'anchor': 'x2'})
fig.layout.yaxis2.update({'title': '金額(千円)'})

# Update the margins to add a title and see graph x-labels.
fig.layout.margin.update({'t':50, 'b':100})
fig.layout.update({'title': '2019年 焙煎豆輸入金額'})

fig.show()
Mickey@コーヒー好きエンジニア

【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではプログラミングに関する相談,就職/転職やコーヒーに関する相談などのサービスをやっています