はじめに
作成する3種類の棒グラフについて
本記事ではPythonのグラフライブラリとして使えるplotlyによる「棒グラフ」の作成について紹介します。
plotlyチュートリアルの棒グラフから例題を抜粋しながら解説していきます。
プログラミングをこれから初める方向けに簡単なグラフを3種選びました。
①単純な棒グラフ
②積み上げ棒グラフ
③棒グラフ内にカラースケール(Z軸)を追加したもの
今回紹介する例題ではグラフの元データを容易する必要がなく、下記プログラムを完コピすればグラフを作成することができます。
まずは実際に手を動かしてコードを書いて見てください。
AnacondaのインストールとJupyter notebookの準備
Anacondaのインストールがまだの方はこちらの記事を参考に準備してください。
Jupyter notebookの起動と使い方まで紹介しています。
plotlyとplotly_expressのインストール
導入から基本的な使い方まで紹介しています。
3種の棒グラフの作成
①単純な棒グラフ
今回も前回同様plotly_expressを使用するので、まずはインポートします。
import plotly.express as px
import plotly.io as pio
そして本文を書いていきます。
元データはplotly_expressで用意されているdata.gapmindeを使用します。
1行目がデータを準備するコードです。
data_japanという変数に日本のデータのみを読み出して使います。
data.gapminderの中には国名(country)、 大陸(continent)、 年度(year)、 寿命(lifeExp)、 人口(pop)、 国民一人あたりのGDP(gdpPercap)、 国の略称(iso_lpha), 国の番号(iso_num)の情報が入っています。
2行目がグラフを作成するコードです。
fig=px.bar()がplotly_express(px)で棒グラフ(bar)を使いますよという意味です。
figはただの変数なので何でも大丈夫です。figure=図を意味しているので良く使われる表現です。
x=、y=の次にそれぞれの値や文字を定義します。
今回はx軸に「year=年度」、y軸に「pop=人口」を選択します。
※y=〇〇の後に,title=”〇〇”とすると図に題目が作成されます。
文字を入力するときはダブルクォーテーション””やシングルクォーテーション’’で囲みます。
3行目はJupyter上にグラフを表示するコードです。
先ほど作った変数figに図のデータが入っているので表示する命令であるshow()で表示されます。
4行目は保存するコードです。(保存場所はJupyterの階層と同じ場所になります)
これはなくても大丈夫です。
htmlで保存すると、開いてグラフを動かすことが可能です。
また、マウスをグラフに当てた時に右上に表示されるカメラマークを押すとpngで保存できます。
また、グラフのクリック&ドロップでグラフ範囲の拡大縮小ができます。
元のサイズに戻したい場合はグラフ内のどこかでダブルクリックし、戻すことができます。
軸の範囲は軸の周辺になるとカーソルが変わるので、左右に水平(垂直)移動させ範囲の幅を好きに変更することができます。
また、軸の端にカーソルを合わせると最大値、最小値も変更することができます。
data_japan = px.data.gapminder().query("country == 'Japan'")
fig = px.bar(data_japan, x='year', y='pop')
fig.show()
pio.write_html(fig,file="./2-1.html")
②積み上げ棒グラフ
1行目がデータを準備するコードです。
long_dfという変数これもplotly_expressで用意されているデータmedals_longを読み出して使います。
2行目がグラフを作成するコードです。
colorを使用することで値を積み上げることができます。
※注意:後で説明しますが、colorで積み上げる場合にはデータの形式に決まりがあります。
long_df = px.data.medals_long()
fig = px.bar(long_df, x="nation", y="count", color="medal", title="Long-Form Input")
fig.show()
pio.write_html(fig,file="./2-2.html")
long_dfの中身を見てみましょう。今回紹介した積み上げのグラフをそのまま使う場合にはデータの形式をこのようにしてください。
ある列に系列としたい区分分けの情報が入っている必要があります。
③棒グラフ内にカラースケール(Z軸)を追加したもの
1行目がデータを準備するコードです。
dataという変数にplotly_expressで用意されているデータgapminderを読み出して使います。
2行目は使用するデータをJapanに絞る時のコードです。
data_japanの中身はこのようになります。
3行目がグラフを作成するコードです。
colorを使用することでカラースケールが表示されます。
カラースケールはlifeExp=平均寿命を示しています。
グラフにカーソルを合わせると年度(x)、人口(y)、寿命(z)全てのデータがホバーされて確認することができます。
data = px.data.gapminder()
data_japan = data[data.country == 'Japan']
fig = px.bar(data_japan, x='year', y='pop',color='lifeExp')
fig.show()
pio.write_html(fig,file="./2-3.html")
※注意:②との違いはデータの形式です。colorで積み上げたり、カラースケールにする場合にはデータの形式に注意しましょう。
colorで指定した列に数値データが入っている場合はカラースケールになります。
以上で棒グラフのチュートリアル紹介は終わりです。
Plotlyに関する書籍紹介
↓Plotlyについて学べる数少ない参考書です。