networkx 플롯에 대한 자체 컬러 바 생성

HighwayJohn

나는 지금 몇 시간을 보내고 쉬울 것이라고 생각했지만 해결할 수 없었던 다음과 같은 문제가 있습니다. 기본적으로 내가하는 일은 네트워크를 그리는 것입니다. 각 노드는 0과 1 사이의 값을 갖습니다. 이제 값에 따라 각 노드에 색상을 지정합니다. 0은 빨간색 노드에 해당하고 1은 녹색 노드에 해당합니다. 다음 코드로이 작업을 수행합니다.

for x in range(gn):
    G.add_node(x)
    cn = value[x]
    cn *= 100
    if cn == 100:
        cn = 99
    if cn < 50:
        # green to yellow
        cg = math.floor(255 * (cn / 50))
        cr = 255
    else:
        # yellow to red
        cg = 255
        cr = math.floor(255 * ((50 - cn % 50) / 50))
    cb = 0
    color_map.append('#%02x%02x%02x' % (cr, cg, cb))

그리고 나중에 코드에서 :

fig, ax = plt.subplots()
nx.draw(G, pos, width=weights, node_color=color_map, ax=ax)
plt.show()

이제 네트워크 옆에 컬러 바를 표시하여 플롯의 관찰자가 값에 해당하는 색상을 개괄적으로 볼 수 있도록합니다. 당신이 나를 도울 수 있기를 바랍니다. 미리 감사드립니다 :) (색상 막대는 0에서 1까지 시작해야합니다. 값이 0.5 이상인 노드도있는 경우에도 마찬가지입니다.)

편집 : 최소 작업 예 :

import networkx as nx
import matplotlib.pyplot as plt
import numpy
import math

gn = 20
color_map = []
G = nx.Graph()
value = numpy.random.uniform(0, 1, gn)
for x in range(gn):
    G.add_node(x)
    cn = value[x]
    cn *= 100
    if cn == 100:
        cn = 99
    if cn < 50:
        # green to yellow
        cg = math.floor(255 * (cn / 50))
        cr = 255
    else:
        # yellow to red
        cg = 255
        cr = math.floor(255 * ((50 - cn % 50) / 50))
    cb = 0
    color_map.append('#%02x%02x%02x' % (cr, cg, cb))
pos = nx.spring_layout(G)

fig, ax = plt.subplots()

fig.subplots_adjust(bottom=0.2)
nx.draw(G, pos, node_color=color_map, ax=ax)
plt.show()
아릭

matplotlib의 사용자 지정 컬러 맵 기능을 사용하여이 작업을 좀 더 쉽게 할 수 있습니다. 예를 들어 http://matplotlib.org/examples/pylab_examples/custom_cmap.html을 참조 하십시오 .

다음은 networkx와 함께 사용하는 방법입니다.

import networkx as nx
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import numpy

gn = 20
G = nx.Graph()
value = numpy.random.uniform(0, 1, gn)
G.add_nodes_from(range(gn))

# create colormap
cdict = {'red':   ((0.0, 1.0, 1.0),
                   (0.5, 1.0, 1.0),
                   (1.0, 0.0, 0.0)),

         'green':  ((0.0, 0.0, 0.0),
                   (0.5, 1.0, 1.0),
                   (1.0, 1.0, 1.0)),

         'blue': ((0.0, 0.0, 0.0),
                   (1.0, 0.0, 0.0))
        }
green_yellow_red = LinearSegmentedColormap('GYR', cdict)
pos = nx.spring_layout(G)
nodes = nx.draw_networkx_nodes(G, pos, node_color=value, cmap=green_yellow_red)
# edges = nx.draw_networkx_nodes(G, pos) # no edges in this graph
plt.colorbar(nodes)
plt.axis('off')
plt.show()

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Seaborn 서브 플롯의 각 행에 대한 컬러 바

분류에서Dev

Scilab : 두 개의 서브 플롯에 대해 동일한 컬러 바

분류에서Dev

Python의 각 서브 플롯에 대한 회색조 컬러 바 만들기

분류에서Dev

컬러 바에서 z 값을 사용하여 선형 컬러 플롯 (cplot)을 생성하는 방법

분류에서Dev

Matplotlib : 여러 시계열에 대한 서브 플롯 생성

분류에서Dev

matplotlib (python)-pyplot없이 여러 플롯에 대한 단일 사용자 정의 범례 생성

분류에서Dev

수동으로 할당 된 색상이있는 플롯 된 선에 대한 Python matplotlib 사용자 정의 컬러 바

분류에서Dev

클래스의 여러 개체에 대한 생성자

분류에서Dev

여러 모듈에 대한 자바 독을 생성하는 방법

분류에서Dev

자바에서 객체가 생성되는 방식에 대한 혼란

분류에서Dev

Python 플롯에서 컬러 바 수정

분류에서Dev

MATLAB에서 여러 컬러 맵에 대한 컬러 바 표시

분류에서Dev

결합 된 산점도에 대해 서로 다른 컬러 바 생성

분류에서Dev

단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

분류에서Dev

여러 플롯이있는 Figure에 대한 Figure Wide Axes 생성 (그리드)

분류에서Dev

C #에서 이러한 유형의 생성자에 대한 바로 가기가 있습니까?

분류에서Dev

imshow 대신 플롯을 기반으로 컬러 바 매핑

분류에서Dev

자바 스크립트에서 객체 속성에 대한 포인터를 어떻게 생성합니까?

분류에서Dev

lognorm을 사용한 matplotlib 등고선 플롯-컬러 바 수준

분류에서Dev

컬러 바를 GeoAxes 서브 플롯 가장자리와 정렬

분류에서Dev

자바 - 필터링 기능에 대한 루프를 생성

분류에서Dev

자바 스크립트 함수에 대한 콜백 생성

분류에서Dev

자바 생성자에 대해 혼동

분류에서Dev

컬렉션의 여러 개체에 대해 블록을 사용하여 생성

분류에서Dev

여러 플롯에 대한 자동 다른 색상?

분류에서Dev

자바 (14)와 함께 생성 된 .class에 대한 자바 질문

분류에서Dev

networkx pagerank에 대한 자세한 출력

분류에서Dev

컬러 산점도에 대한 플롯 코드 이해

분류에서Dev

자바 10 : 바이트 코드 생성 향상된 for 루프에 대한

Related 관련 기사

  1. 1

    Seaborn 서브 플롯의 각 행에 대한 컬러 바

  2. 2

    Scilab : 두 개의 서브 플롯에 대해 동일한 컬러 바

  3. 3

    Python의 각 서브 플롯에 대한 회색조 컬러 바 만들기

  4. 4

    컬러 바에서 z 값을 사용하여 선형 컬러 플롯 (cplot)을 생성하는 방법

  5. 5

    Matplotlib : 여러 시계열에 대한 서브 플롯 생성

  6. 6

    matplotlib (python)-pyplot없이 여러 플롯에 대한 단일 사용자 정의 범례 생성

  7. 7

    수동으로 할당 된 색상이있는 플롯 된 선에 대한 Python matplotlib 사용자 정의 컬러 바

  8. 8

    클래스의 여러 개체에 대한 생성자

  9. 9

    여러 모듈에 대한 자바 독을 생성하는 방법

  10. 10

    자바에서 객체가 생성되는 방식에 대한 혼란

  11. 11

    Python 플롯에서 컬러 바 수정

  12. 12

    MATLAB에서 여러 컬러 맵에 대한 컬러 바 표시

  13. 13

    결합 된 산점도에 대해 서로 다른 컬러 바 생성

  14. 14

    단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

  15. 15

    여러 플롯이있는 Figure에 대한 Figure Wide Axes 생성 (그리드)

  16. 16

    C #에서 이러한 유형의 생성자에 대한 바로 가기가 있습니까?

  17. 17

    imshow 대신 플롯을 기반으로 컬러 바 매핑

  18. 18

    자바 스크립트에서 객체 속성에 대한 포인터를 어떻게 생성합니까?

  19. 19

    lognorm을 사용한 matplotlib 등고선 플롯-컬러 바 수준

  20. 20

    컬러 바를 GeoAxes 서브 플롯 가장자리와 정렬

  21. 21

    자바 - 필터링 기능에 대한 루프를 생성

  22. 22

    자바 스크립트 함수에 대한 콜백 생성

  23. 23

    자바 생성자에 대해 혼동

  24. 24

    컬렉션의 여러 개체에 대해 블록을 사용하여 생성

  25. 25

    여러 플롯에 대한 자동 다른 색상?

  26. 26

    자바 (14)와 함께 생성 된 .class에 대한 자바 질문

  27. 27

    networkx pagerank에 대한 자세한 출력

  28. 28

    컬러 산점도에 대한 플롯 코드 이해

  29. 29

    자바 10 : 바이트 코드 생성 향상된 for 루프에 대한

뜨겁다태그

보관