1. 程式人生 > >networkx畫中文節點 networkx畫中文節點

networkx畫中文節點 networkx畫中文節點

在這之前,也曾經想過用networkx畫中文節點圖,但是上網搜了下,感覺挺麻煩的,就一直沒畫。這次導師要我畫一箇中文圖,嘗試了gephi畫,可是發現用“檔案”選單下的“開啟”可以直接讀取csv格式,並且在gephi裡選擇顯示中文,確實可以,但是老師要求的圖是帶權圖,這種方式不能帶權,自己手工輸入嫌麻煩就放棄了;於是用了gephi的讀取電子表格形式可以讀取權(但一定要把csv格式設定為utf-8格式才能讀),可讀進去發現讓它顯示節點標籤就是不行,會不會是設定成utf-8後它識別不了呢。?目前還不清楚。算了就乾脆用networkx把,一方面用networkx也習慣了,而且可通過權值設定不同邊粗線不一樣。

    上網搜了幾個相關的網頁,

這些網頁裡都有介紹,於是就仔細讀懂了,現在將我修改的方式記錄下來:(下面內容採摘於第二種內容)

一、找到c:\python24\lib\site-packages\matplotlib\mpl-data\matplotlibrc  (修改font.sans-serif、verbose.level兩行程式碼)
1、找到了matplotlibrc設定檔案,是個文字檔案,隨便找個編輯器開啟它,找到font.sans-serif一行,將後邊直接改成一個nothing;(把 “:”後的“#......”都去掉)
2、找到verbose.level一行,把預設的silent改成debug.
二、找到Vera.ttf,將Vera.ttf用一箇中文TrueType文字替換,名字是Vera,字尾是.ttf(True Type Font),即可。
注意:在這裡有兩個地方,C:\Python24\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\下的和C:\Python24\Lib\site-packages\matplotlib\mpl-data\下的兩個vera.ttf檔案。
三、字串,都用u"..."的形式.(檔案編碼utf-8 加上" # coding = utf-8  "一行.)
若是單獨的畫圖,這裡要注意,將PY檔案用記事本開啟,“另存為”,編碼選為“UTF-8”,儲存,即可。

目前我用的是python2.7.3,win64位系統。

第一步同上,在python安裝目錄python2.7下可以找到修改;

第二步時,開始讀沒明白過來意思,後來仔細讀了下,明白過來了,意思是將一個字型copy過來替換掉原來檔案,我的電腦裡是隻在mpl-data\fonts\ttf裡找到這個Vera.ttf檔案。隨後我進行windows目錄下font裡拷貝一個字型替換它就可以。

下面是我測試的程式碼:

# coding = utf-8
from pylab import *
import networkx as nx
g=nx.Graph()
g.add_edge(u'張三',u'李四')
g.add_edge(u'張三',u'王五')
nx.draw(g)
plt.show()

在開始我執行見下圖1,上網搜有的說要改backend後面的引數成“GTK”,修改後執行說要安裝GTK,看了看GTK安裝,發現挺麻煩的需要裝三個包;於是嘗試了下將.py檔案修改成utf格式,即用記事本開啟修改成utf格式,後執行就正常了。見圖2

從mysql匯出到excel,再拷貝進txt



http://blog.sciencenet.cn/blog-668239-733944.html