無料のパテントマップ作成方法(出願推移マップ作成編)

特許分析

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()

コメント

タイトルとURLをコピーしました