以pdf格式保存图形时draw_networkx()的问题

时间:2013-01-04 15:15:48

标签: python pdf matplotlib plot networkx

当我通过在网络draw_networkx()函数中指定width参数来改变用于边的线宽时,例如:

nx.draw_networkx(G, width = 0.03)

使用

产生的图像
plt.show()

与预期一样(因为我可以控制边缘宽度)。但是,当我使用:

plt.savefig('foo.pdf')

生成的pdf似乎具有不受影响的边缘宽度。保存为png似乎工作正常,但我真的需要一个pdf输出。我稍微改变了networkx网站上的示例代码作为示例:

import networkx as nx
import matplotlib.pyplot as plt

G=nx.random_geometric_graph(200,0.125)

pos=nx.get_node_attributes(G,'pos')


dmin=1
ncenter=0
for n in pos:
    x,y=pos[n]
    d=(x-0.5)**2+(y-0.5)**2
    if d<dmin:
        ncenter=n
        dmin=d

p=nx.single_source_shortest_path_length(G,ncenter)

plt.figure(figsize=(8,8))
nx.draw_networkx_edges(G,pos,nodelist=[ncenter],alpha=1, width = 0.03)
nx.draw_networkx_nodes(G,pos,nodelist=p.keys(),
                   node_size=80,
                   node_color=p.values(),
                   cmap=plt.cm.Reds_r)

plt.xlim(-0.05,1.05)
plt.ylim(-0.05,1.05)

plt.savefig('random_geometric_graph.pdf')
plt.show()

导致图像(rhs上的pdf)http://i49.tinypic.com/2501h6c.jpg

我已经尝试在Mac的预览中选择pdf,而在adobe中,问题仍然存在。

非常感谢任何帮助/建议!

0 个答案:

没有答案