||
在这之前,也曾经想过用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:python24libsite-packagesmatplotlibmpl-datamatplotlibrc (修改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:Python24Libsite-packagesmatplotlibmpl-datafontsttf下的和C:Python24Libsite-packagesmatplotlibmpl-data下的两个vera.ttf文件。
三、字符串,都用u"..."的形式.(文件编码utf-8 加上" # coding = utf-8 "一行.)
若是单独的画图,这里要注意,将PY文件用记事本打开,“另存为”,编码选为“UTF-8”,保存,即可。
目前我用的是python2.7.3,win64位系统。
第一步同上,在python安装目录python2.7下可以找到修改;
第二步时,开始读没明白过来意思,后来仔细读了下,明白过来了,意思是将一个字体copy过来替换掉原来文件,我的电脑里是只在mpl-datafontsttf里找到这个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
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-2 20:15
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社