python PR

【matplotlib入門①】plt.plotで折れ線グラフを描画するやり方

記事内に商品プロモーションを含む場合があります

今回からデータの可視化に焦点を当てた講座に入っていきたいと思います。
可視化はデータ分析を行ううえで絶対に必要なスキルですし、pythonを使えばサクッと綺麗なグラフを描画する事ができます。

pythonで可視化するとなると有名なのが、

  • matplotlib
  • seaborn

この2つです。
matplotlibでは基本的なグラフを描画することができ、seabornでより綺麗なグラフを描く事ができます。

まずはmatplotlibから学んでいきましょう!

 

 

matplotlibとはどんなもの?

まずはmatplotlibがどんなものか見ていきましょう。
簡単に言うと、下記のようなグラフを作ることができます。

いわゆる、折れ線グラフや散布図、棒グラフなどですね!
上記のものは非常にシンプルなのでサクッと作れますし、より細かい表現であったり、色使いの変更も行う事ができます。

ちなみにplot(プロット)はグラフを描画するという意味で使われる事が多いです。

matplotlib公式サイトにて、より詳細な情報が載っていますので気になる方はチェックしてみてください。

 

matplotlibをimportしよう

実行環境はどこでも良いのですが、サクッとやりたい方はgoogle colaboratoryが簡単でおすすめです。
別途pip installする必要もありませんので、importすれば使えます。

もし、別の環境でinstallが必要な場合は、↓のコマンドを叩くことで使えるようになります。

 

では続いてimportしていきましょう。
pandasやNumpyでも最初にimport 文を書いてから使っていったと思いますが、それと同じです。

matplotlibの場合は、

このように書けば大丈夫です。
これ以降はpltと書く事でmatplotlibを呼び出すことが出来るようになりました。

%matplotlib inlineと書いてある部分は、jupyter Notebookで matplotlib を使用してグラフを描画するためのマジックコマンドです。
このコードを実行すると、matplotlib のバックエンドが「inline」に設定されます。
これにより、グラフが Jupyter Notebook のセル内に直接表示されます。

まぁ難しい事は置いておいて、このコマンドをおまじないだと思って毎回書く事でmatplotlibを使えるようになります。

 

 

plt.plotで折れ線グラフを描画しよう

では実際にplotしていきましょう。
まずは基本の折れ線グラフからです。

折れ線グラフはこのような、線が折れてるグラフです。(当たり前w)
皆さんも見た事があると思います。

 

 

 

plt.plotの使い方

plt.plotを使うことで、折れ線グラフを描画することができます。
引数としては、分けると以下の3つになります。

  • plt.plot(x, y, format)

 

それぞれの意味としては、↓になります。

  • x:X軸の値のリストまたは配列
  • y:Y軸の値のリストまたは配列
  • format:グラフのスタイルを指定するためのフォーマット文字列

xyは、必須の引数です。
これらの引数には、グラフにプロットするデータの値を指定します。

formatについては後述しますので、一旦置いておいて、簡単な折れ線グラフをplotしてみましょう。

 

 

xとyにリストで値を渡し、それをplotします。

このコマンドを実行すると、↓のグラフが出来ました。

非常に簡単ですね、5個の点を結んでおり、y軸の最大値が25となっていますね。

 

xとyのデータの指定方法は、上記のようにリストで渡しても良いですし、その他にも色々な方法で指定することが出来ます。

個人的に良く使う以下の2種類の方法を教えます。

  • linspace()で指定
  • dataframeのカラム名で指定

 

linspace()で指定

numpyの関数でlinspace()というのがあります。(numpyをimportするのを忘れない様にしましょう)
これは、指定された範囲内の等間隔な数列を生成してくれる関数でした。
等間隔で値を自動作成したい時に便利なやつです!

ではそれを使って、-5から5までを50個に区切った値をxにいれ、それの2乗した値をyに入れた結果をplotしてみましょう。

50個の値が入っているので滑らかな線ができましたね!

 

 

dataframeで指定

続いてdataframeからカラム名を指定してplotする方法を見ていきましょう。
そもそもdataframeが何か分からない方は↓の講座をどうぞ!

【python】データ分析のためのpandasの使い方①:データフレームの作成PandasはPythonのデータ解析ライブラリであり、データサイエンスを行うためには絶対に必要になってきます。 この記事ではpa...

 

やり方は非常にシンプルです。

plt.plot(x, y)のxとyにplotしたいカラム名を指定するだけです。

実際にtemprature(気温)とsales(売上)の2つのカラムを持つdataframeを作成してからグラフをplotしてみましょう!

 

dataframeを使うにはpandasもimportしないといけないので忘れない様にしましょう。

無事plotすることができました。
ちなみにplotするときに上記では、plt.plot(df[‘temperature’], df[‘sales’])という書き方をしましたが、↓の書き方でも大丈夫です

 

 

 

plt.plotの引数を指定してstyleを変えよう

実はmatplotlibでは表のスタイルを細かく指定することができます。

先ほども話したように、plt.plot()では3つ目の引数に色々と指定することで、線の色や太さ、マーカーの種類など細かく設定が可能です。

全てを覚えるのは大変なので、主要なものだけ覚えましょう。

 

色を変えてみよう

まずはベーシックな変更として、線の色を変えてみましょう!
一番シンプルな書き方としては↓です。

  • plt.plot(x, y, ‘色’)

色の部分にcolorを指定することで、線の色を変える事ができます。

ちなにみ色の指定は↓のように書いても同じ結果になりますので、好きな書き方を使いましょう。

colorを’red’だったら’r’で、’blue’だったら’b’と書くだけで指定できるので非常に簡単です。

このようにして、引数に指定するだけでstyleの変更を簡単にできます。

 

他にも色々変更できる

他にも変更できる引数としては40種類以上ありますが、その中でも主要なものとして以下のものがあります。

  • color:線の色を指定
  • lw:linewidth。線の太さを指定
  • ls:linestyle。線のスタイルを指定
  • marker:x軸の値の部分のマーカーの指定
  • markersize:マーカーの大きさを指定
  • markerfacecolor:マーカーの色を指定
  • markeredgecolor:マーカーの淵の色を指定
  • markeredgewidth:マーカーの淵の幅を指定
  • alpha:透明度を指定

 

これらを組み合わせて、細かく指定することができます。
線の色を青かつ太くしてみましょう。また、線のスタイルも変えてみます。

lwを5にすると一気に線が太くなりましたね~!線のスタイルも大幅に変わりました。

 

lwでのスタイルの指定方法

lwで指定する線のスタイルとしては、

  • “solid”,
  • “dashed”
  • “dashdot”,
  • “dotted”

などがあります。それぞれのスタイルとしては、↓になります。

 

このようにplt.plot()を複数書く事で1つの表に線を複数plotする事ができます。
この書き方が1番シンプルです。

 

しかし、solidとかdashedをいちいち覚えるのも大変ですよね~正直私も覚えていません。
そこで、簡単に‘-‘, ‘–‘, ‘-.’, ‘:’などの記号で指定する事でスタイルを指定することもできます。

対応する記号としては↓になります。

  • “solid” = ‘-‘
  • “dashed” = ‘–‘
  • “dashdot” =  ‘-.’
  • “dotted” = ‘:’

↓のように、lsの指定を記号だけにしてもスタイルの変更ができます。

えいせい
えいせい
私はこの書き方で指定する事がほとんどです!

 

マーカーを変化させてみよう

marker系の引数を指定することで、マーカーを変化させることができます。

はいっ、気持ちの悪い配色のグラフができましたね(笑)
引数で指定している箇所がそのまま変更されるので、分かりやすいですね。

 

唯一分かりづらいのが「marker=’o’」という部分だと思います。
ここでは、markerの形自体を指定しており、’o’や’x’,’>’などの記号で指定する事ができます。
対応一覧としては↓になります。

 

alphaで透明度を設定

最後に、線の透明度も設定できます。
複数の線をplotして、見辛いときなど、特定の線を透明化して視認性を上げるのに使います。

書き方としては↓のように、alphaに任意の数値を指定することで透明化できます。

 

alphaに指定できる数値は0~1の間で、0に近いほど透明度が高くなります。

赤い線を0.2, 0.4, 0.6, 0.8, 1で指定していったのが↓です。

 

 

 

matplolibの基本まとめ

いかがでしたでしょうか?
今回はplt.plot()で折れ線をplotする方法の基本を学びました。

まずは今回の内容を覚えてしまえば、最低限のplotは出来ると思います。
あとは、表にタイトルをつけたり、x軸、y軸が何を表しているか?そのタイトルが表示出来たらさらに分かりやすい表になりますよね?
次回はその点を解説していきます。

 

 

 

Work illustrations by Storyset

あなたにおススメの記事