J-PlatPatからcsvデータを入手できたら、このデータに基づいて集計処理、グラフ作成をしていきます。
ここではpythonを使って出願推移マップを作成する手順について説明します。出願推移マップは、母集団における出願数の毎年の推移を示すものです。
以下、プログラムの作成方法を順を追って説明します。出願推移マップをすぐに作成されたい場合、以下の本pythonプログラムコード全体をご参照下さい。
※csvデータの取得方法についてはこちら→知らなきゃ損!無料のパテントマップ作成方法1(データ準備編)
※pythonを動作させるための環境構築はこちら→すぐにできる、パテントマップ作成のためのPC環境のセットアップ
必要ライブラリの読み込みとフォントの設定
まずは必要なモジュールを読み込みます。ここではpandas、matplotlib、seabornを使いますのでこれらをimportします。また出力する出願人名に日本語を含みますので、フォントの指定が必要です。ここではwindowsの標準フォント、MSゴシックを指定しています。以下がサンプルコードです。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ###################### FONT Setting # windows: MS Gothic # osX: Hiragino Sans plt.rcParams['font.family'] = 'MS Gothic' #plt.rcParams['font.family'] = 'Hiragino Sans'
もしMac OSをお使いの場合は、フォント設定は、例えばHiragino Sansにすることをおすすめします。以下のように、Font Setting部分のコメントアウト(Pythonでは#以降の文字はコメントとされます。)を切り替えて下さい。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ###################### FONT Setting # windows: MS Gothic # osX: Hiragino Sans #plt.rcParams['font.family'] = 'MS Gothic' plt.rcParams['font.family'] = 'Hiragino Sans'
csvファイルの読み込みとデータの加工
csvファイルの読み込みはpandasのread_csvを用います。ここでJ-PlatPatから入手したcsvを入力します。(ちなみに、知らなきゃ損!無料で特許マクロ分析を行う方法(準備編)で説明した2つのcsvデータ生成方法のいずれであっても、本ページ記載のpythonプログラムにより処理可能です。)
出願人の情報のうち、グラフ表示で見やすくなるように、不要な部分(スペース、株式会社、他)を全てstr.replaceを用いて置換しています。
ここでは出願年での出願数推移を分析するため、出願日の先頭4文字(西暦の4桁部分)を取得して出願年としています。(patlist[‘出願年’] = patlist[‘出願日’].str[:4]の部分が該当します。)
####### csvファイルの読み込み patlist = pd.read_csv('Book2.csv') ####### 読み込みデータの加工 patlist['出願人'] = patlist['出願人/権利者'] patlist['出願年'] = patlist['出願日'].str[:4] patlist['出願人'] = patlist['出願人'].str.replace(' ','') patlist['出願人'] = patlist['出願人'].str.replace(' ','') patlist['出願人'] = patlist['出願人'].str.replace('株式会社','') patlist['出願人'] = patlist['出願人'].str.replace('有限会社','') patlist['出願人'] = patlist['出願人'].str.replace('国立大学法人','') patlist['出願人'] = patlist['出願人'].str.replace('▲','') patlist['出願人'] = patlist['出願人'].str.replace('▼','') patlist['出願人'] = patlist['出願人'].str.replace('テベル・アドバンスト・テクノロジーズ・リミテッド','テベル・アドバンスト') patlist['出願人'] = patlist['出願人'].str.replace('トップフライトテクノロジーズ,インコーポレイテッド','トップフライトテクノロジーズ')
出願推移マップの作成
データの加工後、グラフ(出願推移マップ)の作成処理をします。ここではseabornのcountplotを使って、出願年毎に出願数を集計しています。グラフは”CIN_map.png”という名前で保存されます。なおここでは1990年~2021年の推移を表示するようにしています。もし期間を変更したい場合は、開始年、終了年を示すstart_year, end_yearの値をそれぞれ書き換えてください。
#########################出願推移グラフ fig = plt.figure(dpi=100, figsize=(10.0,6.0)) ax1 = fig.add_subplot() ax1.set_position([0.25,0.15,0.70,0.80]) start_year=1990 end_year=2020 year_list = [] for year in range(start_year,end_year+1): year_list.append(str(year)) p = sns.countplot(y="出願年", data=patlist, order=year_list, color='deepskyblue') p.set_xlabel("The number of application", fontsize = 10) p.set_ylabel("Filing Year", fontsize = 10) plt.savefig("CIN_map.png") plt.show() plt.clf() plt.close() ########################################
出力される出願推移マップは以下の通りです。p.set_xlabel、p.set_ylabelの記載を変えることで、軸のラベルを変更可能です。出願人名が長い場合には、上記の置換処理をするか、あるいは図のサイズを変更するなど、適宜調整してみてください。
本pythonプログラムコードの全体
以下が本pythonプログラムコードの全体です。こちらをコピー&ペーストして利用すれば、J-PlatPatから入手したcsvファイルから出願推移マップを作ることができます。ご自由にご利用下さい。もしお役に立った場合はコメント頂けると幸いです。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ###################### FONT Setting # windows: MS Gothic # osX: Hiragino Sans plt.rcParams['font.family'] = 'MS Gothic' #plt.rcParams['font.family'] = 'Hiragino Sans' ####### csvファイルの読み込み patlist = pd.read_csv('Book2.csv') ####### 読み込みデータの加工 patlist['出願人'] = patlist['出願人/権利者'] patlist['出願年'] = patlist['出願日'].str[:4] patlist['出願人'] = patlist['出願人'].str.replace(' ','') patlist['出願人'] = patlist['出願人'].str.replace(' ','') patlist['出願人'] = patlist['出願人'].str.replace('株式会社','') patlist['出願人'] = patlist['出願人'].str.replace('有限会社','') patlist['出願人'] = patlist['出願人'].str.replace('国立大学法人','') patlist['出願人'] = patlist['出願人'].str.replace('▲','') patlist['出願人'] = patlist['出願人'].str.replace('▼','') patlist['出願人'] = patlist['出願人'].str.replace('テベル・アドバンスト・テクノロジーズ・リミテッド','テベル・アドバンスト') patlist['出願人'] = patlist['出願人'].str.replace('トップフライトテクノロジーズ,インコーポレイテッド','トップフライトテクノロジーズ') ###########################################################出願推移グラフ fig = plt.figure(dpi=100, figsize=(10.0,6.0)) ax1 = fig.add_subplot() ax1.set_position([0.25,0.15,0.70,0.80]) start_year=1990 end_year=2020 year_list = [] for year in range(start_year,end_year+1): year_list.append(str(year)) p = sns.countplot(y="出願年", data=patlist, order=year_list, color='deepskyblue') p.set_xlabel("The number of application", fontsize = 10) p.set_ylabel("Filing Year", fontsize = 10) plt.savefig("CIN_map.png") plt.show() plt.clf() plt.close()
コメント