networkx画中文节点 networkx画中文节点

在这之前,也曾经想过用networkx画中文节点图,但是上网搜了下,感觉挺麻烦的,就一直没画。这次导师要我画一个中文图,尝试了gephi画,可是发现用“文件”菜单下的“打开”可以直接读取csv格式,并且在gephi里选择显示中文,确实可以,但是老师要求的图是带权图,这种方式不能带权,自己手工输入嫌麻烦就放弃了;于是用了gephi的读取电子表格形式可以读取权(但一定要把csv格式设置为utf-8格式才能读),可读进去发现让它显示节点标签就是不行,会不会是设置成utf-8后它识别不了呢。?目前还不清楚。算了就干脆用networkx把,一方面用networkx也习惯了,而且可通过权值设置不同边粗线不一样。

    上网搜了几个相关的网页,

第一:http://hi.baidu.com/ueooydecembajzd/item/329008314e866fc3382ffa36

第二:http://blog.sina.com.cn/s/blog_4d4afb6d010008xq.html

第三:http://blog.csdn.net/KongDong/article/details/4338826

第四:http://www.flickr.com/photos/feiyafei/26302736/

这些网页里都有介绍,于是就仔细读懂了,现在将我修改的方式记录下来:(下面内容采摘于第二种内容)

一、找到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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值