相关疑难解决方法(0)

matplotlib传奇标记只有一次

我经常在matplotlib图上绘制一个点:

x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()
Run Code Online (Sandbox Code Playgroud)

但是,这会导致图例在图例中放置两次星形,如下所示:

* * Global Optimum
Run Code Online (Sandbox Code Playgroud)

当我真的希望它看起来像:

 *  Global Optimum
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

python matplotlib

236
推荐指数
2
解决办法
5万
查看次数

networkx绘制功能的图例

所以我有以下功能来解决我正在努力的问题.它基本上是一个关键的节点检测问题或阻截.我有一些值x,并决定攻击节点z.基本上我想用活动和非活动节点以及正在处理/攻击的节点为我的图形着色.这是我到目前为止所拥有的.

def draw_solution(g,zsolution,xsolution,T,xmin = 0,filename ='test.pdf'):

# draw solution
pos = {n: ndata['coord'] for n,ndata in g.nodes_iter(data=True)}
ncolour=[]
for n,ndata in g.nodes_iter(data=True):
    if ndata['fuel_load'] < xmin:
        ncolour.append('gold')
    else:
        ncolour.append('yellowgreen')
pp = PdfPages(filename)
fig = plt.figure(figsize=(11.7,8.3))
fig.suptitle('full graph and initial fuel load')
plt.axis('off')
nx.draw_networkx(g, pos, font_size=9, node_color=ncolour)
fig.savefig(pp, format='pdf')
fig.clf()

for t in range(T):
    g_copy = g.copy()
    #node colour
    ncolour=[]
    for i in g.nodes_iter():
        if zsolution[i,t] > 0.99:
            ncolour.append('lightcoral')
            #g_copy.remove_edges_from(g.edges(i))
        elif xsolution[i,t] < xmin:
            ncolour.append('gold')
            g_copy.remove_edges_from(g.edges(i))
        else:
            ncolour.append('yellowgreen')

    plt.axis('off')
    fig.suptitle('t={}, before …
Run Code Online (Sandbox Code Playgroud)

python networkx

1
推荐指数
1
解决办法
3697
查看次数

标签 统计

python ×2

matplotlib ×1

networkx ×1