Gephi 途中経過、とりあえず簡単なグラフ表示だけ。

使いこなせてません。はてなブログのオナ記事は消えてください。

スポンサーリンク

必ずしも必要ではなない知識

クォーテーションうつのすらめんどくさい人のコード

なんらかのデータをリストで用意するときに コンマ や クォーテーションをうつのが非常にだるい。やりようによっては関数化し、目的に応じた、サンプルデータを簡単に用意できるかもしれない。

place = "hokkaido aomori iwate miyagi akita yamagata fukusima ibaragi totigi gunma saitama tiba toukyo kanagawa niigata toyama isikawa fukui yamanasi nagano gifu sizuoka aiti mie siga kyoto oosaka hyogo nara wakayama tottori simane okayama hirosima yamaguti tokusima kagawa ehime kouti fukuoka saga nagasaki kumamoto ooita miyazaki kagosima okinawa"

place = place.split(" ")
for p in place:
    print("'" + p + "'")

ちょっと手抜きだがこのあとにエディターを駆使する。(エディターをつかわなくてもこのコードを変更すれば可能だろう)

人名と県のcsvをランダム生成するpythonコード

import random

fragment = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
place = ['hokkaido','aomori','iwate','miyagi','akita','yamagata','fukusima','ibaragi','totigi','gunma','saitama','tiba','toukyo','kanagawa','niigata','toyama','isikawa','fukui','yamanasi','nagano','gifu','sizuoka','aiti','mie','siga','kyoto','oosaka','hyogo','nara','wakayama','tottori','simane','okayama','hirosima','yamaguti','tokusima','kagawa','ehime','kouti','fukuoka','saga','nagasaki','kumamoto','ooita','miyazaki','kagosima','okinawa']

count = 0
label = ""
with open('pepole.csv', 'w') as f:
    f.write("id,label,place" + "\n")
    for i in range(1,1000):
        for j in range(0, 5):
           label += random.choice(fragment)

上記と似たようなコード

import random

fragment = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
category = ["big", "medium", "small"]
region = ["cold", "warm", "dry"]

count = 0
label = ""
with open('test.csv', 'w') as f:
    f.write("id,label,category,region" + "\n")
    for i in range(1,1000):
        for j in range(0, 5):
           label += random.choice(fragment)
        count += 1
        f.write(str(count) + "," + label + "," + random.choice(category) + "," + random.choice(region) + "\n")

pythonのrandomは簡単につかえてよい。

  • choice(list) → リストからランダムに1個選択
  • sample(list, 10) → リストからランダムに複数選ぶ
  • random.random() → 0.0以上1.0未満の float をランダムに生成
  • random.randint(1, 10) → 1 から 10 までの整数をランダムに生成
  • random.uniform(0.5, 1,0) → 任意の範囲の浮動小数点
スポンサーリンク

Gephi

人名と県だけだったらGephiはいらない

上記で紹介したpythonコードで人名と県が1000件入ったcsvデータを用意する。Gephiでcsvを読みこむ。

こんなかんじにしたり。
gephi_pepole(1)

こんなかんじにできる。
gephi_pepole(2)

だがこんなのは棒グラフがあればいいので、Gephiを使う意味がない。

nodeとedge

gephiにはnodeとedgeという概念がある。nodeは「点」でedgeは「線」。

csvデータは普通に開くか、csvデータをnodeとしてインポートする。csvデータをedgeとしてインポートできる。

nodeのcsvデータには最低でも「idカラムとlableカラム」が必要で、
edgeのcsvデータには最低でも「sourceカラムとtargetカラム」が必要とのことだが、どうつかいこなせばよいかがいまいちわからなかった。

雑感

edgeのcsvとnodeのcsvの関係が理解できれば、先に進めそうだが、また情報探索するはめに。だるい。

コメント

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