Pythonで特許マップを書いてみる
以前の回で、KH Coderで特許マップを書きました。
KH Coderのマップ作製機能では、パーセントのみのバブルチャートが作成可能でした。
しかし、度数(件数)でのバブルチャートは書けませんので、多少心残りがありました。
エクセルを使用すればバブルチャートは書けるのですが、なかなか大変であり、私自身も1回しかエクセルで作成したことがありません。
ところで最近、Pythonでもグラフが書けると知り、トライしてみました。
注)以下は、プログラミング未経験者が書く文章となりますので、内容にひどい点があることはあらかじめご承知おき願います。
まず、Pythonとやらが動く環境を作らねばなりませんが、これは、Anacondaをインストールすればよいようです。無料のツールですので大変助かります。
とはいえ、AnacondaをインストールしてJupyter Labを立ち上げるまでに、プログラミング未経験者にとっては、すでに多大な労力が必要となります。
ライブラリはPandasとMatplotlibを使用します。
作成した現状のコードはひどいと思われますので、公開できるレベルになりましたら公開いたします。
グラフ作成の元データ(CSV)は、以前の回で、KH Coderが生成したデータを使用します。
KH Coderのマップ作製機能では、パーセントのみのバブルチャートが作成可能ですが、生データとしては、度数(件数)も出力されますので、これを使用させていただきます。
取り込んだCSVデータは以下のようになりました。
Matplotlibにより、ひとまず折れ線グラフを書くと以下のようになります。
散布図を書くと以下の通りとなります。
書きたいバブルチャートは、横軸が企業となり、バブルの大きさが件数に比例した大きさとなるようなグラフとなります。
google検索でいろいろ調べましたが、私の考えるようなバブルチャートは、どうも簡単には書けないようです(私の知識が足りないだけと思われますので、調査を続けたいと思います)。
しかたがありませんので、ここではエクセルと同様の技を使うことにします。
具体的には、元データに対して離散化処理をし、これでグラフを書きます。離散化データは以下の通りです。
iRobot, Dyson, Panasonicを1, 2, 3の位置に配置し、count1~3の大きさのバブルを配置します。
これで散布図を書くと以下のようになります。
かっこ悪いですが、これで、見事?にバブルチャートができました。
軸の整理等を行えば見栄えが良くなりますが、このあたりで力尽きました。
ということで、今回は力業でバブルチャートを作成しましたが、より簡単な方法もあると思います。
この程度のグラフはエクセルで書けますので、あえて、Pythonでグラフを書く必要はまったくないと思われますが、おそらく今後はPythonでグラフを書く人が増えていくのだろうな、という印象でした。
(8/18追記)
Matplotlibのハンドブックを買いましたので、軸の修正を試みました。
コードを書くのは面倒ですが、次回からはコードを流用できます(すなわちほぼ自動化できます)ので、バブルチャートを書く労力は、ほぼ無くなることになります。
そう考えますと、エクセルではなくPythonでグラフを書くというのはありという感想に変わりました。