Python初心者:Matplotlibでグラフを作ってみる

2019 9/03
Python初心者:Matplotlibでグラフを作ってみる

Python初心者、グラフ作成にチャレンジしてみました。

ブログの検索順位取得ツールをPythonで作ろうとしています。

今までは、Google検索し順位を取ってきてExcelに書き出す部分の作成をしてきました。

今回は、順位の変動をプロットする機能を作っていきます。

グラフってgnuplotかExcelで作ることがほとんどだった私。
うまくPythonでグラフ作成できるでしょうか・・・

目次

Matplotlibをインストール

Pythonでグラフを作成するには、「Matplotlib」というモジュールが必要なので、いつものようにpipでインストールしました。

Matplotlibは今までと違ってブワッと何行も状況が表示されましたが、普通にインストール成功しました。

Matplotlibインストール1
なんかいっぱい表示がでてきた
Matplotlibインストール2
インストール成功
スポンサーリンク

とりあえずグラフを作ってみる

まずは基本的なグラフを作ってみたいと思います。

x軸が日付、y軸がブログ順位の折れ線グラフで、データはソースで設定しちゃいます。

グラフを描画するソースコード

まず、こちらのコードを書いてグラフを表示させてみました。

x軸のフォーマット以外は全てデフォルトのグラフとなります。

Matplotlibのdatesは、x軸に日付を使いたいのでインポートしました。

x軸のデータはdatetime関数で2019/6/27から5日間としました。
y軸は適当な数値で、ブログ検索順位を模擬しています。

グラフの作成は

でできます。

今回はx軸が日付なので、フォーマットを指定してあげます。

「set_major_formatter」が主目盛り(大目盛り)の設定になります。

できたグラフ

上記のコードで表示してみたグラフは、こうなりました。

ひとまず作ってみたグラフ
ひとまず作ってみたグラフ

なるほど。
とりあえずグラフは作れました。

x軸の目盛り間隔が嫌ですね~
グリッド線も欲しいところ。
改善したい箇所がいくつかあります。

好みのグラフになるように、軸や目盛りをカスタマイズしてみます。

スポンサーリンク

軸や目盛りの設定をしてみる

デフォルトで作られたグラフでは見栄えが良くないので、軸や目盛りをカスタマイズしていきます。

軸や目盛りをカスタマイズ

プロットするデータは同じです。

見栄えを改良したコードがこちら。

追加箇所は以下です。

目盛り間隔

軸の目盛り間隔が、デフォルトだと分かりずらいですね。
x軸は同じ日付が2個ずつですし、y軸も0.5ずつである必要はないので、目盛り間隔を変えてみます。

このコードで間隔を設定できます。

まず、「plt.gca()」でグラフの指定をしておきます。

きちんと理解できていないのですが、一度に複数のグラフを作成する場合もあるため、
この操作はグラフを指定するために行われているっぽいです。
(間違った理解ならすみません)

軸目盛の設定(ここでは主目盛りの設定)は「set_major_locator」で行います。
引数にただの数値(1だけ)を入れればいいのではなく、「ticker.MultipleLocator(1)」としないといけないのがポイント。

目盛り線の方向

デフォルトでは目盛り線が枠の外側に出ていますが、私は内側に向いている方が好きなので、変更してみます。

これで内側に向いた目盛りになります。

ちなみに、外側に指定するなら「out」、内側と外側両方に出た目盛り線を指定するなら「inout」となります。

y軸の範囲

y軸の最小値が4なのが個人的に嫌なので、最小値のみ設定してみます。

y軸の最小値を0にするのは

ちなみに、最小値と最大値の両方を設定するのは

とすればOK。(例は最小が0、最大が10となるようなコード)

軸ラベル

軸ラベルが書かれていないと、何のデータなのか分からないですよね。
昔から(大学でも仕事でも)軸ラベルは必ず入れるようにしています。

軸ラベルの設定方法は

日本語を表示するにはフォントの設定が必要だそうで、面倒なので英語にしました。

グリッド線

グリッド線(目盛り線)を追加します。

デフォルトのグリッド線(灰色の線)でよければ

でOK。

今回は点線にしたいので、線のスタイルを指定しました。
線スタイル指定は、グリッドの引数に「linestyle=」で設定します。

スタイルの指定方法はこちらが参考になりました。
参考:matplotlibによる線種や色などの指定方法

できたグラフ

カスタマイズを施したグラフはこのようになりました。

軸や目盛りの設定をしたグラフ
軸や目盛りの設定をしたグラフ

うん、見栄えが良くなりました。

初めてPythonでグラフを作ったので、今回はこの辺でよしとします。

ブログ検索順位取得ツールの機能(検索、Excel書き出し、グラフ作成)はほぼできたので、次はいよいよGUI操作画面の作成に入ります。

PythonでGUI・・・大変なのかどうかも分からない未知の世界
レッツ・ラ・チャレンジ!

んじゃ、また~

関連記事

応援よろしくお願いします☆

この記事を書いた人

理系夫婦の妻のほうです。
大学、大学院(修士)で物理を専攻。
2016年に長女を出産。
フルタイム勤務ワーママ→休職中。
「CrowdWorks(クラウドワークス)」でお仕事受け付けております!
(ツール開発、記事執筆など)
「まゆみ1101」というユーザー名です!

コメント

コメントする

目次
閉じる