
多くの人は大丈夫かと思いますがpythonのAPIを操作するには大体下記が必要です。
API操作に慣れていない人はこれを意識した状態で進むといいと思います。
GoogleスプレッドシートのAPIを利用するためには、GoogleCloudPlatformに登録が必要です。GoogleCloudPlatformのサービスにある「Google Sheets API」のAPIライブラリを有効にし、認証情報を取得できるサービスアカウントをAPIキーを取得します。
GoogleCloudPlatformのサービスアカウントは、アプリケーション(GoogleSheetsAPIを使って開発するアプリ)からGoogleCloudPlatformにアクセスするために必要な認証とアカウントが紐づいたものです。つまりこれに基づいて認証を行います。







今回はGoogleスプレッドシートの操作を行うので、Googleスプレッドシートが必要です。一応、こんなスプレッドシートを用意しました。
同じデータで試したい場合は、「こちら」をクリックしてください。遷移したスプレッドシートは「閲覧」専用シートです。そのため、このスプレッドシートを「コピーを作成」することで、自身が編集権限を持ったスプレッドシートの操作ができます。
自分で編集可能なスプレッドシートを作成したら、次はスプレッドシートの設定によってサービスアカウントのメールアドレスに権限を付与します。



先ほど作成したGoogleCloudPlatformのサービスアカウント認証用のjsonファイルをpythonファイルと同じディレクトリに格納します。※読み込みパスを自由に変更できる方は別の場所に入れても大丈夫です。
私は、jupyternotebookのローカル環境でPythonを実行します。
今回のAPIリクエストのために、必要なインストールを行います。まだ以下のライブラリをインストールしていない人は、pythonの環境で以下を操作する必要があります。
// 必要なライブラリをインストール pip install gspread pip install google-auth
# gspreadをインポートします。 import gspread
gspeadをインポートしたら、認証に必要なライブラリなどを設定します。
# 認証に必要なライブラリをインポート
from google.oauth2.service_account import Credentials
# 今回使用するAPIの範囲を指定します。
scopes = [
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive'
]次に、サービスアカウントの認証ファイルを読み込みます。
# 認証に必要なサービスアカウントのファイルを読み込み
credentials = Credentials.from_service_account_file(
'credentials.json',
scopes=scopes
)
# 認証リクエスト
gc = gspread.authorize(credentials)ここまでの認証情報の送信を実行してエラーがなければ、おそらく問題なくできているかと思います。
認証を突破した次は、データを取得したいスプレッドシートを指定します。スプレッドシートにはIDが存在します。IDはスプレッドシートURLの「/d/」以降の「/」に囲まれた部分です。以下のURLでは赤文字の部分がスプレッドシートのIDとなります。
https://docs.google.com/spreadsheets/d/1dIxhhcl3qeUD_YB4_qyQFJdCobn5Z0IrSw1g9zidaG8/edit#gid=0
操作を行いたいスプレッドシートを指定するには、このIDを用います。コードではIDを用いて以下のように、スプレッドシートを指定します。
# スプレッドシートのIDを指定する
sht1 = gc.open_by_key('1dIxhhcl3qeUD_YB4_qyQFJdCobn5Z0IrSw1g9zidaG8')
# 対象スプレッドシートのシート名を指定する
worksheet = sht1.worksheet('名簿')ここで対象のスプレッドシートのワークシートのデータが取得できた状態です。本当に取得できているかは、get_all_values()メソッドを使ってみてみましょう。
# データを見てみる data = worksheet.get_all_values() data
問題なければ、以下のデータが表示されます。
このデータをもとに、数字を変更してみましょう。
では、塩見さんの年齢を29歳から30歳にしてみましょう。C2のセルの数値を30に変更しているのが以下の操作です。
# 29歳の年齢を30歳に更新する
worksheet.update('C2', '30')この操作に問題がなければ、スプレッドシートを見てみると数値が更新されていることが分かります。一応、jupter notebookでデータを見てみます。
# 更新したデータを再度読み込んでみてみる data = worksheet.get_all_values() data
操作するとこんな表示になります。
新しいスプレッドシートのシートを作成するなら、以下で可能です。以下は「打率」という新しいシート名を作成しています。
# 新しいシート「打率」を作成する sht1.add_worksheet(title="打率", rows=100, cols=20)
これで、Pythonのスクレイピングで取得した毎日のデータをスプレッドシートに記載できたり、色々クリエイティブな作業が出来ると思ったのではないでしょうか。作業の効率化に励みましょう。
The post PythonのgspreadでGoogleスプレッドシートを操作する方法 first appeared on 知ってほしいWebのあれこれ.]]>多くの人は大丈夫かと思いますがpythonのAPIを操作するには大体下記が必要です。
API操作に慣れていない人はこれを意識した状態で進むといいと思います。
ホットペッパーのAPIリファレンスは下記URLから確認できます。
https://webservice.recruit.co.jp/doc/hotpepper/reference.html
ホットペッパーでAPIをたたくために必要な認証キー(APIキー)は、APIリファレンスで「新規登録」が必要です。また、APIキーはメールでしか確認できませんので、忘れないようにしましょう。(新規登録⇒APIリファレンス)
メソッドはGETメソッドを用いる。
※APIリファレンスに書いてあります。
APIを叩く時のリクエストURLは下記です。
※変わっているかもしれませんのでAPIリファレンスを確認しましょう。
http://webservice.recruit.co.jp/hotpepper/gourmet/v1/
リクエストURLやAPIキーと共に、以下のパラメータを指定します。どんなパラメータがリクエストに必要なのかは、公式のAPIリファレンスで確認しましょう。
以下の情報は私が最低限必要な情報を抜粋しています。
上記のパラメータに基づいて必要なデータを決めていきます。
必要なパラメータは以下を指定します。
パラメータを決めたら、リクエストURLやAPIキーを用いてPythonでリクエストします。
今回のAPIリクエストのために、requestsのライブラリを使用します。requestsをインストールしていない人は、pythonの環境で以下を操作する必要があります。
// requestsをインストールしていない人 pip install requests
インストールしたら、実際のpythonコードを記述します。
//先ほどインストールしたrequestsのライブラリを呼び出し import requests次にリクエストURLを変数に格納します。
//リクエストURLを変数に指定する URL = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/'こ次に取得したAPIキーを変数に格納する。
//APIリファレンスで新規登録することで取得できるAPIキーを入力してください。 API_KEY = 'xxxxx'変数に格納したAPIキーや他のパラメータをbodyの変数に格納します。
body = {
'key':API_KEY,
'keyword':'恵比寿駅',
'format':'json',
'count':15
}
これらを指定したらリクエストをしてみましょう。
// APIに必要なURLや変数に格納したbodyをもとに、requestsライブラリでリクエスト // リクエストしたデータをresponseの変数に格納 response = requests.get(URL,body)
そうしたら、JSONデータの中から、15件の店名を表示させましょう。
// 取得したデータからJSONデータを取得
datum = response.json()
// JSONデータの中からお店のデータを取得
stores = datum['results']['shop']
// お店のデータの中から、店名を抜き出して表示させる
for store_name in stores:
name = store_name['name']
print(name)
APIを提供してくれるのはありがたいですね。ワンランク上のお店探しに必要な環境を提供してくれるホットペッパー(リクルート)さんに感謝です。
The post pythonでホットペッパーのAPIを叩いてみた first appeared on 知ってほしいWebのあれこれ.]]>ここで学べる事:
今回説明するのはseleniumのライブラリでfind_elementを使った要素取得の解説です。画像や要素をクリックするために必要なライブラリは、以下が前提です。
seleniumでクリックを行うためには以下の2ステップが必要です。
それぞれ解説していきます。
また、要素や画像をクリックするサンプルコードは、「Googleの検索窓をGoogleの画像検索窓にする」ケースを紹介します。
具体的には、以下のGoogle検索窓が表示されている状態で、以下画面キャプチャの右上に表示されている「画像」をクリックすることが本記事の解説のゴールです。
対象の作業ページと対象のクリック要素が決まったらコードの紹介を以降で行っていきます。コードはすべて必要な認識を持ちましょう。
まずはseleniumのインポートとChromeで作業の対象ページ(今回はgoogleのトップページで検索窓を表示)を開きます。以下の対象コードを実行します。
// webdriverでChromeを起動⇒そして該当URLをChromeで開く
from selenium import webdriver
driver = webdriver.Chrome() //chrome起動
driver.get('https://www.google.co.jp/')//chromeでgoogleページを表示
ここまでを実行すると、以下画像のようにgoogleのトップページが表示されます。

この画面が表示されたら、クリックしたい要素にフォーカスします。クリックしたい要素を指定するには次で説明するfind_elementで要素を指定します。次の説明を見てましょう。
クリックするためには、クリックする個所を特定する必要があります。クリックしたい箇所の特定はfind_elementを使います。
find_elementのメソッドの中で、今回はfind_element_by_xpathを使ってクリックしたい要素を指定します。現時点のクリックしたい箇所のxpathは以下のようにないます。
// elemの変数を用意して、elemの変数にクリックしたい「画像」のxpathの情報を格納している。
elem = driver.find_element_by_xpath('//*[@id="gb"]/div/div[1]/div/div[2]/a')
デベロッパーモードはWindowsであればF12(Macは Command + Option + I キー)で開くことができます。デベロッパーモードを開いたらキャプチャの下にデベロッパーモードが表示されます。表示されたらデベロッパーモード左上のチェックボタンを押して、クリックしたい要素を押します。
クリックしたい要素を押したら、デベロッパーモードの画面に該当する要素が薄い青色でマスクされた箇所が出てきます。(画像の④)そうしたら右クリックを押して、「Copy」→「Copy XPath」をクリックします。
ここまでで、クリックしたい要素を指定できている状態です。
クリックした要素を指定できたら、最後にクリックを指定します。
// 先ほど指定したクリックしたい要素を格納した変数elemにクリックを指示する elem.click()
ここまでで紹介してきたコードをまとめて記載します。以下を実行することで要素をクリックすることが可能です。
// webdriverでChromeを起動⇒そして該当URLをChromeで開く
from selenium import webdriver
driver = webdriver.Chrome() //chrome起動
driver.get('https://www.google.co.jp/')//chromeでgoogleページを表示
// elemの変数を用意して、elemの変数にクリックしたい「画像」のxpathの情報を格納している。
elem = driver.find_element_by_xpath('//*[@id="gb"]/div/div[1]/div/div[2]/a')
// 先ほど指定したクリックしたい要素を格納した変数elemにクリックを指示する
elem.click()The post pythonのseleniumでボタンや画像をクリックする方法 first appeared on 知ってほしいWebのあれこれ.]]>ここで学べる事:
今回説明するのはseleniumのライブラリでfind_elementを使った要素取得の解説です。そのため、必要なライブラリがありますので、以下ライブラリを使うのが前提です。
find_elementで要素を取得する時に、単数の要素か複数の要素取得かどうかでfind_elementを使い分けます。以下の使い分けを行います。
seleniumでhtmlファイルのソースコードから、ある要素を取得するには様々なメソッドがあります。まず、以下のメソッドがあることを知りましょう。
要素取得するfind_elementのメソッドには、要素の指定方法によってメソッドが異なります。主に使われるメソッドは以下のようなものがあります。メソッドと使い方を記載します。
また、複数の要素取得時に使用するfind_elementsは「s」を「element」に追加したメソッドで記述します。複数の要素取得はリスト形式で要素を取得するので、メソッドの説明がほぼ変わらないため、メソッドの種類のみを記載します。
では、実際にseleniumを使ったfind_elemntの要素取得を行いましょう。まずはこんなhtmlのソースコードがあったとします。それぞれの要素をfind_elementを使って要素取得していきます。
// このhtmlソースコードの情報を元にfind_elementで情報を取得する <html> <body> <form id="loginForm" class="form-design"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="submit" type="submit" value="login" /> </form> </body> <html>
まず、seleniumを使える状態にします。
// webdriverでChromeを起動⇒そして該当URLをChromeで開く
from selenium import webdriver
driver = webdriver.Chrome() //chrome起動
driver.get('https://www.xxx取得したいURLを入れましょうxxx.com/')//chromeでページを表示上記を実行することでwebdriverでChromeを起動し、該当URLをChromeで表示することができます。この表示したwebdriverに要素取得を行いましょう。先ほど紹介したhtmlコードの記述情報を元にfind_elementで要素を取得する方法を以下で紹介します。
find_element_by_nameは、タグ内のname属性に書かれた内容と条件マッチした要素を取得します。
//elemの変数にname属性が、usernameに一致した要素を格納する
elem = driver.find_element_by_name('username')
xpathは、ツリー構造となるxml/html形式から、要素や属性を指定するための構文です。先ほど紹介したfind_element_by_nameとは、要素を指定する構文が異なります。
//htmlソース内の最初のフォームタグを要素取得
elem_form = driver.find_element_by_xpath("//form[1]")ちなみに、上記の場合は最初のフォームタグを取得しますが、以下のようにid属性を条件に要素を取得することも可能です
//elem_formの変数に、id属性がloginFormにマッチする要素を取得
elem_form = driver.find_element_by_xpath("//form[@id='loginForm']")
他の要素取得方法に比べてxpath形式は難しいと感じる方も多いかと思います。仕組みを理解せずに、簡単に指定してみたい場合は、windowsであればブラウザを開いた状態でF12キーを押し、デベロッパーモード(Chromeの呼称)を開きましょう。デベロッパーモードで取得した要素に対して「右クリック」⇒「コピー」⇒「xpathをコピー」で箇所を特定することが可能です。
//elem_tagの変数にタグの名前がformのタグ要素を取得する
elem_tag = driver.find_element_by_tag_name("form")
//elem_classの変数にclass属性の値がform_designになっている要素を取得する
elem_class = driver.find_element_by_class_name("form-design")
//elem_selectorの変数に,formタグのclass属性がform_designになっている要素を取得する
elem_selector = driver.find_element_by_css_selector("form.form-design")
Xpathと同様にselector部分をデベロッパーモードで調べることが可能です。windowsであればブラウザを開いた状態でF12キーを押し、デベロッパーモード(Chromeの呼称)を開きましょう。デベロッパーモードで取得した要素に対して「右クリック」⇒「コピー」⇒「selectorをコピー」で箇所を特定することが可能です。
find_elementで要素を取得する時に、要素を取得する条件で兄弟要素を取得したいと思う時が実務上発生することは想像ができます。その時のために、find_element_by_css_selectorで兄弟要素を指定します。以下のソースコードがあったとします。
//兄弟要素を取得する場合のhtmlソースコードのサンプル <p class="author"> xxxxさんは以下の本を出版しております。 </p> <p class="book"> <ul> <li>タイトル1:ーーー分析入門</li> <li>タイトル2:スクレイピング基礎編</li> <li>タイトル3:データ解析</li> <li>タイトル4:Pandasでデータ分析</li> </ul> </p> <p class="last"> 来年も本を出版予定です。 </p>
上記のタグからclass属性のauthorから見た隣接する直後の兄弟要素は、bookが記述されたclass属性です。その場合、以下のように記述を行います。
// 隣接する直後の兄弟要素を指定する場合は、cssセレクターに「+」を追記して指定する
elem_bro = driver.find_element_by_css_selector("p.book + p")上記の隣接する直後の兄弟要素だけでなく、すべての後ろの兄弟要素を取得する場合は「~(チルダ)」を使います。
// 隣接する直後の兄弟要素を指定する場合は、cssセレクターに「+」を追記して指定する
elem_bro_all = driver.find_element_by_css_selector("p.book ~ p")
selenium自体は他のスクレイピングより、処理が遅いなんて言われますが、遅いことを除けば万能だと思います。seleniumのスクレイピングではfind_elementで要素が取得できることはファーストステップなので、しっかり押さえておきましょう。
The post pythonのseleniumで要素取得するfind_elementの使い分けと種類と取得方法 first appeared on 知ってほしいWebのあれこれ.]]>まずはseleniumをインポートして使えるようにします。
// seleniumをインポートする from selenium import webdriver
// Chromeを起動する browser = webdriver.Chrome()
次にChromeを起動します。
// Chromeドライバーでhrefを取得するサイトを開く
browser.get('hrefを取得するページを開く')
hrefを取得するページのURLをgetで取得します。
hrefを取得するために、aタグの要素を指定します。例えば以下のhtmlファイルのソースがあると仮定します。
// hrefを取得するページのソースを一部表示させている想定です。 <p class="practice"> <a href="https://www.xxxxxx.com/article/1653165/">ニュース記事</a> </p>
上記の場合、find_element_by_class_nameで、aタグを含めたpタグを取得します。その上でaタグを取得します。
// elemの変数にclass属性のpracticeが指定された箇所を取得
elem = find_element_by_class_name('practice')
aタグも含めた要素を取得したら、aタグ要素のみを抽出します。aタグを抽出したら、get_attribute(‘href’)でhref属性を取得します。変数に格納したhref属性の中身を確認したいなら、print()で可能です。
// 先ほどの変数elemに格納されたタグの中から,find_element_by_tag_nameを使ってaタグを指定する
// aタグを指定したら、get_attribute('href')を使ってhref属性の中身を取得する
elem_href = elem.find_element_by_tag_name('a').get_attribute('href')
// print()を使って中身を表示する
print(elem_href) //https://www.xxxxxx.com/article/1653165/が表示される
つまり、aタグを指定した上で、get_attribute()メソッドを使い、get_attribute(‘href’)を記述すればhref属性を取得することができます。
The post python×seleniumでリンクのhrefを取得する方法 first appeared on 知ってほしいWebのあれこれ.]]>私の場合は以下環境で実行しようとしました。
以下をjupyternotebookで実行すると「WebDriverException: Message: unknown error: cannot find Chrome binary」のエラーが表示された。
from selenium import webdriver driver = webdriver.Chrome()
anacondaで「pip install ~」を試した見たものの、それではchromedriverが起動せず同じエラーが出ました。
結構あれやこれやと苦労したのですが、結局は直接chromedriverをダウンロードして、jupyternotebookで実行するpyファイル(pythonファイル)と同じ階層にアップロードしたら問題なくchromedriverが実行できました。
chromedriverを直接ダウンロードできるページ→https://chromedriver.chromium.org/downloads
私の場合は、バスっとこれでできましたが、いろんなエラーが生じる人のために以下の補足も余談として追加します。
ちなみに、
The post seleniumでchromedriverがエラー時に試したこと first appeared on 知ってほしいWebのあれこれ.]]>
import pandas as pd
pd.read_csv('XXX.csv',encoding'cp932')
実行結果はこんな感じ
このデータを見てみると、2行目で扱われているデータが不適切だし、各データカラム名が日本語長くて非常に見辛くなっています。

pandasのデータを見やすくするために、下記の操作を実行します。
import pandas as pd
pd.read_csv('exchange.csv',encoding='cp932',header=1,names=['date','USD','rate'],index_col=0,parse_dates=True)read_csv()関数に指定を加える事で実行結果は下記のように読みやすくなります。
このようにread_csv()関数の指定をしっかりする事で見やすく整形する事ができますとさ。
read_csv()関数で指定できる代表的な引数はこちら
| キーワード引数 | 内容 |
|---|---|
| encoding | ファイルのエンコーディングの指定 |
| header | ヘッダーとして使用する行番号の指定。Noneを指定すると先頭行から全てデータとしてみなされる。 |
| names | カラム(列)の名前の指定 |
| index_col | インデックスとして使用する列番号(0からが始まり) |
| parse_dates | Trueにすると、インデックス使用した列に対して日時フォーマットにするように試みられる |
| na_values | デフォルトの値に追加でNaNとみなす文字列のリスト |
この操作を知っていれば、わざわざ元のCSVファイルを修正する必要はありません。しっかり覚えておきましょう。
その他のread_csv()関数の扱いを知りたい方は下記を参考にしてください。
The post pythonのpandasでCSV読み込んだ時のいらない行やカラム名の操作 first appeared on 知ってほしいWebのあれこれ.]]>今回はPythonのpandasでエクセルデータを読み込む方法を紹介していきます。
今回はpandasを使ってエクセルデータを読み込むので、前提としてpandasはインストールされている前提です。pandasをインストールしていない人は、インストールしましょう。
pip install pandas
では、pandasを使ってエクセルデータを読み込みましょう。ここでポイントですが、csvの読み込みならpandasそのままで読み込みができるのですが、エクセルの場合は追加で「xlrd」をインストールする必要があります。
下記を入力して「xlrd」をインストールしましょう。
pip install xlrd
xlrdをインストールしたら、エクセルデータを読み込む準備は完了です。
実際にpandasからエクセルを読み込むには、下記のように記述します。
import pandas as pd
pd.read_excel('example.xlsx')
エラーが出ている場合、読み込むデータのディレクトリパスがあっているかどうかを確認しましょう。またcsvファイルを読み込む場合は、read_excelをread_csvに変更します。
igraphの実行コードを書いて、ネットワーク図を表示させたら日本語が表示されずに、□の文字しか出てこない現象が勃発しました。(上の画像の様に)
「はて、これはどうすれば?」と思いました。
きっと、日本語表示されないのは、igraphの図形描写のフォント設定に、日本語が含まれたフォントがないのだろうと。
igraphで日本語を表示するのは、シンプルな話で「graph.py」のフォント設定を変更することです。
graph.pyは、使っているPCなどのローカル環境内の「igraph/drawing/」フォルダ配下にあるはずです。フォルダをチマチマ探すのが面倒な人は「graph.py」をフォルダ検索することで探せるはずです。
「graph.py」のフォント設定箇所は、「DefaultGraphDrawerクラス」にある以下のコードの箇所です。
context.select_font_face(vertex.font, \
cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)このコードを以下の様に修正します。
context.select_font_face("Hiragino Sans", cairo.FONT_SLANT_NORMAL, \
cairo.FONT_WEIGHT_NORMAL)こうすると、以下の描写になって成功です。
The post Pythonのigraphで日本語ば表示されない!そんな時の対処法 first appeared on 知ってほしいWebのあれこれ.]]>
進んでは止まり、また進んでは止まり。できずに停滞してしまうこともあります。Python学習を進めていくにあたり、igraphが使えなくてハマったので、議事がてら共有します。
Pythonでigraphを使うには、陥りやすい罠があることをまず最初に知っておく必要があります。なぜなら知らぬ間に罠に陥る人も多いからです。
これからの説明は罠です。
繰り返しですが、やってはいけないことなので、肝に銘じてください。
Pythonでインストールをする基本的な操作は、以下「pip install パッケージ」や「py -m pip install パッケージ」です。この操作が染み付いた人は、igraphをインストールするために「pip install igraph」とあまり考えずにやってしまいますが、これ最悪です。
なぜなら、ネットワーク図を描写するためのigraphのパッケージでは無いからです。
先ほど言った様に、ネットワーク図を描写するためのパッケージは「igraph」ではありません。代わりにインストールするのは、「python-igraph」が正解です。
もし、既に「igraph]をインストールしてしまったらアンイストールしましょう。アンインストールは下記の操作で実行できます。
py -m pip uninstall igraph
DeprecationWarning: To avoid name collision with the igraph project, this visualization library has been renamed to 'jgraph'. Please upgrade when convenient.
pythonを実行した時に表示されるエラーで「jgraph」が出てきたので、「jgraph」をインストールするのも間違いです。
「jgraph」を入れてもネットワーク図の「igraph」は使えません。もし、インストールしてしまったら罠①の時と同じ様に「jgraph」をアンインストールしましょう。
py -m pip uninstall jgraph
Pythonでネットワーク図のigraphを使うにあたっては、まず罠を説明してきました。知らぬ間に罠に入ってしまう人が多いであろうと思ったから、最初に説明しました。
では、ここからは正しい手順です。大まかには以下の通りです。
以下で説明します。
igraphを使うには、パッケージ管理のhomebrewでigraph本体をインストールする必要があります。以下を順番にmacのターミナルで実行していきます。
$ brew tap brewsci/science $ brew tap brewsci/bio $ brew install pkg-config
余談ですが、「$ brew install homebrew/science/igraph」でできると書いているサイトを見かけましたが、私は「Error: homebrew/science was deprecated. This tap is now empty as all its formulae were migrated.」のエラーが出たのでできませんでした。
代わりに実行したのが上の順番なので参考にしてください。
Homebrewでigraph本体をインストールしたら、「python-igraph」をインストールします。実行コードは問題ないと思いますが、以下の通りです。
$ pip install python-igraph
これで、私はできる様になりました。
出来上がりはこんな感じ
ちなみに今回はまったのでいろんなサイトを参考にさせてもらいました。この記事でも分からない場合は、下記記事を参考にしてください。
できなくてハマった時に参考になったサイトは以下のページです。参考まで。
ここまででigraphを意気揚々とインストールできたあなたに、次の罠が発生する可能性があります。それは、igraphで日本語が出てきない現象です。
合わせて、不安な方は下記記事を参考にしてください。
The post Python3でigraphを使ってネットワーク図を描写するまでにたくさんハマった first appeared on 知ってほしいWebのあれこれ.]]>