Искам да създам кръгова диаграма във всяка позиция на възел на графика, създадена с помощта на Networkx. Въз основа на коментарите, дадени в тази публикация, опитах следното.
import pygraphviz as pgv
import networkx as nx
import matplotlib.pyplot as plt
import plotly.graph_objects as go
from pprint import pprint
from collections import OrderedDict
if __name__ == '__main__':
tail = [1, 2, 3]
head = [2, 3, 4]
xpos = [0, 1, 2, 3]
ypos = [0, 0, 0, 0]
xpos_ypos = [(x, y) for x, y in zip(xpos, ypos)]
ed_ls = [(x, y) for x, y in zip(tail, head)]
G = nx.OrderedDiGraph()
G.add_edges_from(ed_ls)
# set node positions
pos = OrderedDict(zip(G.nodes, xpos_ypos))
nx.draw(G, pos=pos, with_labels=True)
nx.set_node_attributes(G, pos, 'pos')
# set node property 1
prop1 = [0.1, 0.2, 0.3, 0.4]
nx.set_node_attributes(G, prop1, 'prop1')
# set node property 2
prop2 = [0.5, 0.6, 0.4, 0.1]
nx.set_node_attributes(G, prop2, 'prop2')
# set node property 3
prop3 = [20, 10, 5, 1]
nx.set_node_attributes(G, prop3, 'prop3')
# set node property 4
prop4 = [24, 256, 2547, 101]
nx.set_node_attributes(G, prop4, 'prop4')
# create pie-chart in nodes
H = nx.nx_agraph.to_agraph(G)
H.node_attr['style'] = 'wedged'
for i in H.nodes():
n = H.get_node(i)
n.attr['prop1'] = # Here, I want to convert this prop1 = [0.1, 0.2, 0.3, 0.4] to colormap and assign colors
plt.show()
Има четири свойства, присвоени на възлите, prop1, prop2, prop3 и prop4. Искам да създам 4 равни дроби в кръговата диаграма (подобно на това, но равни дроби) и да оцветя всяка фракция въз основа на стойности, съхранявани в променливи prop1, prop2, prop3 и prop4.
Накратко, вместо да присвоявам един цвят на всеки възел, тук имам кръгова диаграма с брой дроби, равен на броя на атрибутите/свойствата на възела. Стойностите, съхранени за всяко свойство, ще се използват за присвояване на цветове на фракциите, присъстващи в кръговата диаграма, която е разположена в центъра на всеки възел.
Всички предложения как да направите това ще бъдат наистина полезни
[1,1,1,1]
и има общо 4 свойства. IIUC искате да оцветите една четвърт от пиеплота, но с кой цвят? Как решавате дали[0,0,0,1]
получава различен цвят от[0,0,1,0]
? - person warped   schedule 13.03.2020