import pandas as pd, numpy as np, json, os
import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inline
m=json.loads(open('json/member_timelines.json','r').read())
df=pd.DataFrame(m).groupby(['Name','Csoportok']).first()
df.head(8)
Csoportok0 | Csoportok1 | Simple | Típus | duration | end | index | start | ||
---|---|---|---|---|---|---|---|---|---|
Name | Csoportok | ||||||||
ALBERT Álmos | ⏺️ Európa | ⏺️ Európa | ⏺️ Európa | Albert Almos | Bizottság | 1462 | 2012-12-20 00:00:00 | 0 | 2008-12-19 00:00:00 |
🇨🇺 Kuba | 🇨🇺 Kuba | 🇨🇺 Kuba | Albert Almos | Ország | 1462 | 2012-12-20 00:00:00 | 5 | 2008-12-19 00:00:00 | |
🇩🇿 Algéria | 🇩🇿 Algéria | 🇩🇿 Algéria | Albert Almos | Ország | 1462 | 2012-12-20 00:00:00 | 6 | 2008-12-19 00:00:00 | |
🇫🇷 Franciaország | 🇫🇷 Franciaország | 🇫🇷 Franciaország | Albert Almos | Ország | 1298 | 2012-12-20 00:00:00 | 7 | 2009-06-01 00:00:00 | |
🇲🇦 Marokkó | 🇲🇦 Marokkó | 🇲🇦 Marokkó | Albert Almos | Ország | 1462 | 2012-12-20 00:00:00 | 8 | 2008-12-19 00:00:00 | |
🇷🇴 Kovászna | 🇷🇴 Kovászna | 🇷🇴 Kovászna | Albert Almos | Megye | 1462 | 2012-12-20 00:00:00 | 4 | 2008-12-19 00:00:00 | |
🌷 RMDSZ - Romániai Magyar Demokrata Szövetség | 🌷 RMDSZ - Romániai Magyar Demokrata Szövetség | 🌷 RMDSZ - Romániai Magyar Demokrata Szövetség | Albert Almos | Párt | 1462 | 2012-12-20 00:00:00 | 9 | 2008-12-19 00:00:00 | |
🔀 Állami ügyek | 🔀 Állami ügyek | 🔀 Állami ügyek | Albert Almos | Bizottság | 802 | 2011-03-01 00:00:00 | 1 | 2008-12-19 00:00:00 |
def anneal(t,p=7):
#pd.to_datetime('2020-01-01')-pd.to_datetime('1989-01-01')=11322
return (2-(pd.to_datetime('2020-01-01')-pd.to_datetime(t)).days/11322)**p
tanneal={}
anneal2020=anneal(pd.to_datetime('2020'))
for t in pd.date_range('1990','2020'):
tanneal[t]=anneal(t)/anneal2020+0.1
plt.plot(tanneal.keys(),tanneal.values())
C:\ProgramData\Anaconda3\lib\site-packages\pandas\plotting\_converter.py:129: FutureWarning: Using an implicitly registered datetime converter for a matplotlib plotting method. The converter was registered by pandas on import. Future versions of pandas will require you to explicitly register matplotlib converters. To register the converters: >>> from pandas.plotting import register_matplotlib_converters >>> register_matplotlib_converters() warnings.warn(msg, FutureWarning)
[<matplotlib.lines.Line2D at 0x177d8bbaef0>]
tipusok={'Bizottság':['Bizottság'],
'Ország':['Ország'],
'Megye':['Párt','Bizottság','Ország'],
'Párt':['Bizottság','Ország']}
edges={'Total':{'Total':{}}}
members_set=df.reset_index()['Name'].unique()
for iname,name in enumerate(members_set[:]):
if iname%100==0: print(iname/len(members_set)*100,'%')
sdf=df.loc[name]
csoportok=sdf.index
tipus=sdf['Típus'].values
start=sdf['start'].astype('datetime64').dt.date.values
end=sdf['end'].astype('datetime64').dt.date.values
for t in pd.date_range(min(sdf['start']),max(sdf['end'])):
td=t.date()
for i in range(len(csoportok)):
csop=csoportok[i]
tip=tipus[i]
if tip in tipusok:
if start[i]<td<end[i]:
for j in range(len(csoportok)):
if i!=j:
csop2=csoportok[j]
tip2=tipus[j]
if tip2 in tipusok[tip]:
if start[j]<td<end[j]:
nset=tuple(np.sort([csop,csop2]))
v=1
if tip not in edges:edges[tip]={}
if tip2 not in edges[tip]:edges[tip][tip2]={}
if nset not in edges[tip][tip2]:edges[tip][tip2][nset]={'anneal':0,'values':0}
edges[tip][tip2][nset]['values']+=v
edges[tip][tip2][nset]['anneal']+=v*tanneal[t]
if nset not in edges['Total']['Total']:edges['Total']['Total'][nset]={'anneal':0,'values':0}
edges['Total']['Total'][nset]['values']+=v
edges['Total']['Total'][nset]['anneal']+=v*tanneal[t]
0.0 % 3.5855145213338115 % 7.171029042667623 % 10.756543564001435 % 14.342058085335246 % 17.927572606669056 % 21.51308712800287 % 25.098601649336683 % 28.684116170670492 % 32.269630692004306 % 35.85514521333811 % 39.440659734671925 % 43.02617425600574 % 46.61168877733955 % 50.197203298673365 % 53.78271782000718 % 57.368232341340985 % 60.9537468626748 % 64.53926138400861 % 68.12477590534242 % 71.71029042667622 % 75.29580494801003 % 78.88131946934385 % 82.46683399067766 % 86.05234851201148 % 89.63786303334528 % 93.2233775546791 % 96.80889207601291 %
import pickle
def save_obj(obj, name ):
with open('obj/'+ name + '.pkl', 'wb') as f:
pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)
def load_obj(name ):
with open('obj/' + name + '.pkl', 'rb') as f:
return pickle.load(f)
save_obj(edges,'plotter_csoportok_edges')
edges2=load_obj('plotter_csoportok_edges')
tipuskonverter=df.reset_index()[['Csoportok','Típus']].drop_duplicates().set_index('Csoportok').to_dict()['Típus']
def order(links,tip,tip2):
for link in links:
if link['source_type']!=tip:
source=str(link['source'])
target=str(link['target'])
link['source']=target
link['target']=source
link['source_type']=tip
link['target_type']=tip2
return links
network={}
for tip in edges:
for tip2 in edges[tip]:
#create graph
edgelist=[]
for e in edges[tip][tip2]:
edgelist.append((e[0],e[1],edges[tip][tip2][e]['anneal']))
G=nx.Graph()
G.add_weighted_edges_from(edgelist)
links=[]
for e in G.edges(data=True):
links.append({'source':e[0],'target':e[1],
'value':e[2]['weight'],
'source_type':tipuskonverter[e[0]],
'target_type':tipuskonverter[e[1]]
})
links=order(links,tip,tip2)
means=pd.DataFrame(links).groupby('source')['value'].median().to_dict()
meant=pd.DataFrame(links).groupby('target')['value'].median().to_dict()
nmeans=np.median(list(means.values()))
nmeant=np.median(list(meant.values()))
#recalculate with new weights
edgelist=[(i['source'],i['target'],{'relative':i['value']/means[i['source']],'value':i['value']}) for i in links]+\
[(i['target'],i['source'],{'relative':i['value']/meant[i['target']],'value':i['value']}) for i in links]
for link in links:
#start writing then it becomes clear
link['mean']=(link['value']*2)/(means[link['source']]+meant[link['target']])
link['nmean']=1/ ((gmean*2)/(nmeant+nmeans)) #adjust for category importance amongst all categories
link['wmean']=link['mean'] * link['nmean']
link['geometric']=(link['value']**2)/(means[link['source']]*meant[link['target']])
link['ngeometric']=1/ ((gmean**2)/(nmeant*nmeans)) #adjust for category importance amongst all categories
link['wgeometric']=link['geometric'] * link['ngeometric']
G=nx.DiGraph()
G.add_weighted_edges_from(edgelist)
pr = nx.pagerank(G,weight='value')
mpr=np.median(list(pr.values()))
nodes={i:{'id':i,'tipus':tipuskonverter[i],'pr':pr[i]/mpr} for i in pr}
#save
if tip not in network:network[tip]={}
network[tip][tip2]={'nodes':nodes,'links':links}
print(tip,tip2,len(nodes),'nodes and',len(links),'edges')
--------------------------------------------------------------------------- LinAlgError Traceback (most recent call last) <ipython-input-88-07afbbd457fd> in <module> 43 44 #pr = nx.pagerank(G,weight='relative') ---> 45 pr = nx.pagerank_numpy(G,weight='relative',personalization=personalization) 46 mpr=np.median(list(pr.values())) 47 nodes={i:{'id':i,'tipus':tipuskonverter[i],'pr':pr[i]/mpr} for i in pr} C:\ProgramData\Anaconda3\lib\site-packages\networkx\algorithms\link_analysis\pagerank_alg.py in pagerank_numpy(G, alpha, personalization, weight, dangling) 328 weight=weight, dangling=dangling) 329 # use numpy LAPACK solver --> 330 eigenvalues, eigenvectors = np.linalg.eig(M.T) 331 ind = np.argmax(eigenvalues) 332 # eigenvector of largest eigenvalue is at ind, normalized C:\ProgramData\Anaconda3\lib\site-packages\numpy\linalg\linalg.py in eig(a) 1303 _assertRankAtLeast2(a) 1304 _assertNdSquareness(a) -> 1305 _assertFinite(a) 1306 t, result_t = _commonType(a) 1307 C:\ProgramData\Anaconda3\lib\site-packages\numpy\linalg\linalg.py in _assertFinite(*arrays) 216 for a in arrays: 217 if not (isfinite(a).all()): --> 218 raise LinAlgError("Array must not contain infs or NaNs") 219 220 def _isEmpty2d(arr): LinAlgError: Array must not contain infs or NaNs
network={}
for tip in edges:
for tip2 in edges[tip]:
#create graph
edgelist=[]
for e in edges[tip][tip2]:
edgelist.append((e[0],e[1],edges[tip][tip2][e]['anneal']))
G=nx.Graph()
G.add_weighted_edges_from(edgelist)
links=[]
for e in G.edges(data=True):
links.append({'source':e[0],'target':e[1],
'value':e[2]['weight'],
'source_type':tipuskonverter[e[0]],
'target_type':tipuskonverter[e[1]]
})
links=order(links,tip,tip2)
means=pd.DataFrame(links).groupby('source')['value'].median().to_dict()
meant=pd.DataFrame(links).groupby('target')['value'].median().to_dict()
nmeans=np.median(list(means.values()))
nmeant=np.median(list(meant.values()))
#recalculate with new weights
edgelist=[(i['source'],i['target']) for i in links]+\
[(i['target'],i['source']) for i in links]
personalization={(i['source'],i['target']):i['value']/means[i['source']] for i in links}
personalization.update({(i['target'],i['source']):i['value']/meant[i['target']] for i in links})
for link in links:
#start writing then it becomes clear
link['mean']=(link['value']*2)/(means[link['source']]+meant[link['target']])
link['nmean']=1/ ((gmean*2)/(nmeant+nmeans)) #adjust for category importance amongst all categories
link['wmean']=link['mean'] * link['nmean']
link['geometric']=(link['value']**2)/(means[link['source']]*meant[link['target']])
link['ngeometric']=1/ ((gmean**2)/(nmeant*nmeans)) #adjust for category importance amongst all categories
link['wgeometric']=link['geometric'] * link['ngeometric']
G=nx.DiGraph(G)
#pr = nx.pagerank(G,weight='relative')
pr = nx.pagerank_numpy(G,weight='relative',personalization=personalization)
mpr=np.median(list(pr.values()))
nodes={i:{'id':i,'tipus':tipuskonverter[i],'pr':pr[i]/mpr} for i in pr}
#save
if tip not in network:network[tip]={}
network[tip][tip2]={'nodes':nodes,'links':links}
print(tip,tip2,len(nodes),'nodes and',len(links),'edges')
pr
{'🌷 RMDSZ - Romániai Magyar Demokrata Szövetség': 0.026020376055621356, '🇨🇺 Kuba': 0.004851837223449517, '🔱 PRM - Partidul România Mare': 0.023885780423054268, '🌹 PSD - Partidul Social Democrat': 0.02866590517298517, '🔶 PDL - Partidul Democrat Liberal': 0.025410842076793585, '🕊️ PC - Partidul Conservator': 0.022629494104069656, '🕊️ PUR-SL - Partidul Umanist din România': 0.02109308148107953, '📐 PNL - Partidul Naţional Liberal': 0.02829363599012981, '⚛️ PP-DD - Partidul Poporului Dan Diaconescu': 0.026036782065782155, '👤 Independent - Independent': 0.02866590517298517, '🕊️ ALDE - Partidul Alianţa Liberalilor şi Democraţilor': 0.02500273470585775, '🌹 PDSR - Partidul Democraţiei Sociale din România': 0.02134143625988721, '✳️ PNTCD - Partidul Naţional Ţărănesc Creştin Democrat': 0.019134569234901373, '🔶 PD - Partidul Democrat': 0.025380018584278727, '🍏 PMP - Partidul Mişcarea Populară': 0.024713674947327402, '🔷 USR - Uniunea Salvaţi România': 0.027824422098004557, '🇩🇿 Algéria': 0.004853606511873097, '🇲🇦 Marokkó': 0.005352259916013787, '🇫🇷 Franciaország': 0.008671617891148111, '🇨🇴 Kolumbia': 0.004851837223449503, '🇨🇾 Ciprus': 0.005352259916013787, '🇭🇷 Horvátország': 0.00460540716512123, '🇧🇪 Belgium': 0.009222852814504853, '🇭🇺 Magyarország': 0.006578708344279115, '🇸🇦 Szaúd-Arábia': 0.005112870557767754, '🇸🇾 Szíria': 0.004965311445326677, '🇹🇲 Türkmenisztán': 0.004360269045919821, '🇦🇪 Egyesült Arab Emírségek': 0.0036190047857517435, '🇪🇬 Egyiptom': 0.005352259916013787, '🇪🇸 Spanyolország': 0.007139949980872076, '🇲🇪 Montenegró': 0.004363854978700657, '🇳🇱 Hollandia': 0.004358441045613121, '🇺🇾 Uruguay': 0.005112697154705524, '🇧🇦 Bosznia-Hercegovina': 0.004853606511873097, '🇧🇭 Bahrein': 0.00460846839267169, '🇨🇳 Kína': 0.0070720823162426765, '🇮🇱 Izrael': 0.008600224037763232, '🇯🇵 Japán': 0.006595555315911505, '🇲🇳 Mongólia': 0.006469597636841371, '🇲🇰 Macedónia': 0.005611523961908439, '🇪🇪 Észtország': 0.0038682232582322542, '🇮🇳 India': 0.005729611587134898, '🇦🇱 Albánia': 0.005352259916013787, '🇰🇿 Kazahsztán': 0.0043577498817673746, '🇸🇩 Szudán': 0.0028782990358769767, '🇹🇭 Thaiföld': 0.00594196423736642, '🇮🇪 Írország': 0.00496595110259732, '🇺🇦 Ukrajna': 0.004852153715321538, '🇨🇬 Kongó': 0.0028782990358769767, '🇨🇮 Elefántcsontpart': 0.004854432196791548, '🇪🇨 Ecuador': 0.004860052081213451, '🇵🇰 Pakisztán': 0.00560188111595954, '🇲🇹 Málta': 0.00496595110259732, '🇴🇲 Omán': 0.003366172219062498, '🇧🇴 Bolívia': 0.005100036570201372, '🇨🇱 Chile': 0.005909575666991053, '🇵🇭 Fülöp-szigetek': 0.005470347541240245, '🇦🇺 Ausztrália': 0.007525641880665576, '🇬🇧 Egyesült Királyság': 0.006747419987406533, '🇰🇷 Dél-Korea': 0.007649612831447117, '🇵🇱 Lengyelország': 0.005941948300406605, '🇬🇷 Görögország': 0.0063295227260704015, '🇮🇹 Olaszország': 0.007863040576920954, '🇵🇹 Portugália': 0.006194223152794109, '🇧🇾 Fehéroroszország': 0.004603527658239433, '🇨🇦 Kanada': 0.007822126208752719, '🇱🇻 Lettország': 0.004936359287902891, '🇱🇺 Luxemburg': 0.005352259916013787, '🇦🇷 Argentína': 0.0066762941648204, '🇱🇧 Libanon': 0.007223375290531563, '🇲🇾 Malajzia': 0.005352259916013787, '🇦🇿 Azerbajdzsán': 0.005111101269344156, '🇩🇰 Dánia': 0.00504381465076994, '🇹🇳 Tunézia': 0.004853606511873097, '🇵🇪 Peru': 0.005104060569261915, '🇸🇪 Svédország': 0.005625806399754334, '🇩🇪 Németország': 0.00844175492695767, '🇻🇪 Venezuela': 0.006886220927420233, 'Más ország': 0.006626314720329489, '🇲🇽 Mexikó': 0.005105829857685512, '🇳🇴 Norvégia': 0.0047159237555387465, '🇫🇮 Finnország': 0.006335072965167173, '🇧🇬 Bulgária': 0.0059575629830048845, '🇮🇷 Irán': 0.0065430083224719575, '🇦🇹 Ausztria': 0.005731756079313629, '🇬🇳 Guinea': 0.005106655542603961, '🇹🇷 Törökország': 0.00660629772238702, '🇸🇰 Szlovákia': 0.005361445108274767, '🇮🇩 Indonézia': 0.005352259916013787, '🇱🇹 Litvánia': 0.0054319514644931045, '🇷🇺 Orosz Föderáció': 0.004607828735401047, '🇸🇬 Szingapúr': 0.0036178469580575396, '🇿🇦 Dél-Afrika': 0.005632847099836578, '🇧🇷 Brazília': 0.005438992164575344, '🇨🇷 Costa Rica': 0.005104060569261915, '🇨🇿 Czechia': 0.005373583053941927, '🇻🇳 Vietnam': 0.004608002138463273, '🇮🇸 Izland': 0.00460846839267169, '🇮🇶 Irak': 0.0037252508143495017, '🇵🇦 Panama': 0.005230363052252317, 'Jugoszlávia': 0.003630706648621571, '🇸🇮 Szlovénia': 0.005939414857139631, '🇱🇰 Srí Lanka': 0.0026277824672143674, '🇿🇲 Zambia': 0.00323578174580261, '🦅 UNPR - Uniunea Naţională pentru Progresul României': 0.02189994236045929, '🕊️ PUNR - Partidul Unităţii Naţionale Române': 0.01364973400867147, '⚪️ FSN - Frontul Salvării Naţionale': 0.008204589961143531, '🍀 PER - Partidul Ecologist Român': 0.0074018460306266584, '⚪️ FDSN - Frontul Democrat al Salvarii Nationale': 0.0014349393491836775, '🌹 PSDR - Partidul Social Democrat Român': 0.010370561835785996, '🍀 PDAR - Partidul Democrat Agrar din România': 0.006006174594913806, '🔘 ULB - Uniunea Liberală "Brătianu"': 0.0017273469664676232, '🍀 MER - Mişcarea Ecologistă din România': 0.006278374462774228, '🍀 FER - Federaţia Ecologistă Română': 0.0017230149201793493, '👤 Minorități - Minorități': 0.00378511104627142, '🔘 PRNR - Partidul Reconstrucţiei Naţionale din România': 0.002825780772883024, '🔘 PDM - Partidul Democrat al Muncii': 0.0014413965445653446, '🔘 PLS - Partidul Liber Schimbist': 0.0033344501896417867, '🔘 AUR - Alianţa pentru Unitatea Românilor': 0.0025024171713600397, '📐 PNL-CD - Partidul Naţional Liberal': 0.002483252925169643, '🔘 GDC - Gruparea Democratică de Centru': 0.0024743958214082248, '🇯🇴 Jordánia': 0.005103750706493799, '🇬🇪 Grúzia': 0.004864187945185547, '🇦🇲 Örményország': 0.004475128669637516, '🇰🇼 Kuvait': 0.004853723359435228, '🔘 FC - Forţa Civică': 0.003857539943896385, '🇸🇳 Szenegál': 0.002629789826356994, 'Republica Franceză - Senat': 0.0018807282700510262, '🇨🇭 Svájc': 0.003370495576231763, '🇶🇦 Katar': 0.003615941209928061, '🔘 PAR - Partidul Alternativa României': 0.003049619761496559, '🔘 PTLDR - Partidul Tineretului Liber Democrat din România': 0.002247439020088131, 'fosta Republică Iugoslavă Macedonia': 0.0013816197347149696}
pr
{'🌷 RMDSZ - Romániai Magyar Demokrata Szövetség': 0.02602197879845518, '🇨🇺 Kuba': 0.004851567098252788, '🔱 PRM - Partidul România Mare': 0.023887275115809462, '🌹 PSD - Partidul Social Democrat': 0.028667651982590595, '🔶 PDL - Partidul Democrat Liberal': 0.025412426811281016, '🕊️ PC - Partidul Conservator': 0.022630898755092572, '🕊️ PUR-SL - Partidul Umanist din România': 0.021094396090370244, '📐 PNL - Partidul Naţional Liberal': 0.028295364791388777, '⚛️ PP-DD - Partidul Poporului Dan Diaconescu': 0.02603840281696248, '👤 Independent - Independent': 0.028667651982590595, '🕊️ ALDE - Partidul Alianţa Liberalilor şi Democraţilor': 0.025004265415305805, '🌹 PDSR - Partidul Democraţiei Sociale din România': 0.021342768877524346, '✳️ PNTCD - Partidul Naţional Ţărănesc Creştin Democrat': 0.019135757785766924, '🔶 PD - Partidul Democrat': 0.025381549293726775, '🍏 PMP - Partidul Mişcarea Populară': 0.024715187648429053, '🔷 USR - Uniunea Salvaţi România': 0.027826132890917076, '🇩🇿 Algéria': 0.004853336386676385, '🇲🇦 Marokkó': 0.005351953774124172, '🇫🇷 Franciaország': 0.008671185690833359, '🇨🇴 Kolumbia': 0.004851567098252788, '🇨🇾 Ciprus': 0.005351953774124172, '🇭🇷 Horvátország': 0.004605155048270961, '🇧🇪 Belgium': 0.009222402605843649, '🇭🇺 Magyarország': 0.0065783301690037115, '🇸🇦 Szaúd-Arábia': 0.005112582424224587, '🇸🇾 Szíria': 0.004965041320129961, '🇹🇲 Türkmenisztán': 0.004360034937416001, '🇦🇪 Egyesült Arab Emírségek': 0.0036188247022872597, '🇪🇬 Egyiptom': 0.005351953774124172, '🇪🇸 Spanyolország': 0.00713953578890378, '🇲🇪 Montenegró': 0.004363620870196835, '🇳🇱 Hollandia': 0.004358206937109295, '🇺🇾 Uruguay': 0.00511240902116236, '🇧🇦 Bosznia-Hercegovina': 0.004853336386676385, '🇧🇭 Bahrein': 0.004608216275821426, '🇨🇳 Kína': 0.00707166812427438, '🇮🇱 Izrael': 0.00859977382910203, '🇯🇵 Japán': 0.006595177140636101, '🇲🇳 Mongólia': 0.006469219461565965, '🇲🇰 Macedónia': 0.005611199811672374, '🇪🇪 Észtország': 0.003868025166421323, '🇮🇳 India': 0.0057292874368988335, '🇦🇱 Albánia': 0.005351953774124172, '🇰🇿 Kazahsztán': 0.004357515773263552, '🇸🇩 Szudán': 0.00287817297745184, '🇹🇭 Thaiföld': 0.005941622078783914, '🇮🇪 Írország': 0.004965680977400611, '🇺🇦 Ukrajna': 0.00485188359012482, '🇨🇬 Kongó': 0.00287817297745184, '🇨🇮 Elefántcsontpart': 0.00485416207159483, '🇪🇨 Ecuador': 0.004859781956016735, '🇵🇰 Pakisztán': 0.005601574974069924, '🇲🇹 Málta': 0.004965680977400611, '🇴🇲 Omán': 0.0033660101439444657, '🇧🇴 Bolívia': 0.0050997484366582125, '🇨🇱 Chile': 0.005909233508408549, '🇵🇭 Fülöp-szigetek': 0.005470041399350632, '🇦🇺 Ausztrália': 0.007525227688697271, '🇬🇧 Egyesült Királyság': 0.00674704181213113, '🇰🇷 Dél-Korea': 0.007649180631132364, '🇵🇱 Lengyelország': 0.005941606141824104, '🇬🇷 Görögország': 0.006329162559141445, '🇮🇹 Olaszország': 0.007862590368259752, '🇵🇹 Portugália': 0.006193862985865157, '🇧🇾 Fehéroroszország': 0.004603275541389162, '🇨🇦 Kanada': 0.007821676000091517, '🇱🇻 Lettország': 0.004936089162706171, '🇱🇺 Luxemburg': 0.005351953774124172, '🇦🇷 Argentína': 0.00667591598954499, '🇱🇧 Libanon': 0.007222961098563262, '🇲🇾 Malajzia': 0.005351953774124172, '🇦🇿 Azerbajdzsán': 0.00511081313580099, '🇩🇰 Dánia': 0.005043544525573226, '🇹🇳 Tunézia': 0.004853336386676385, '🇵🇪 Peru': 0.005103772435718748, '🇸🇪 Svédország': 0.005625482249518275, '🇩🇪 Németország': 0.008441286709950027, '🇻🇪 Venezuela': 0.00688582474379838, 'Más ország': 0.006625954553400526, '🇲🇽 Mexikó': 0.005105541724142345, '🇳🇴 Norvégia': 0.004715671638688481, '🇫🇮 Finnország': 0.006334712798238216, '🇧🇬 Bulgária': 0.005957220824422372, '🇮🇷 Irán': 0.006542630147196558, '🇦🇹 Ausztria': 0.0057314319290775705, '🇬🇳 Guinea': 0.00510636740906079, '🇹🇷 Törökország': 0.006605919547111614, '🇸🇰 Szlovákia': 0.005361138966385151, '🇮🇩 Indonézia': 0.005351953774124172, '🇱🇹 Litvánia': 0.005431645322603493, '🇷🇺 Orosz Föderáció': 0.004607576618550775, '🇸🇬 Szingapúr': 0.0036176668745930584, '🇿🇦 Dél-Afrika': 0.005632522949600517, '🇧🇷 Brazília': 0.005438686022685735, '🇨🇷 Costa Rica': 0.005103772435718748, '🇨🇿 Czechia': 0.005373276912052315, '🇻🇳 Vietnam': 0.004607750021613002, '🇮🇸 Izland': 0.004608216275821426, '🇮🇶 Irak': 0.0037250707308850214, '🇵🇦 Panama': 0.005230074918709154, 'Jugoszlávia': 0.003630526565157089, '🇸🇮 Szlovénia': 0.005939072698557119, '🇱🇰 Srí Lanka': 0.00262767441713568, '🇿🇲 Zambia': 0.003235637679031026, '🦅 UNPR - Uniunea Naţională pentru Progresul României': 0.021901292986442913, '🕊️ PUNR - Partidul Unităţii Naţionale Române': 0.013650562392608045, '⚪️ FSN - Frontul Salvării Naţionale': 0.008205058178151176, '🍀 PER - Partidul Ecologist Român': 0.007402260222594942, '⚪️ FDSN - Frontul Democrat al Salvarii Nationale': 0.0014349573575301233, '🌹 PSDR - Partidul Social Democrat Român': 0.010371174119565198, '🍀 PDAR - Partidul Democrat Agrar din România': 0.006006498745149857, '🔘 ULB - Uniunea Liberală "Brătianu"': 0.0017273829831605206, '🍀 MER - Mişcarea Ecologistă din România': 0.00627871662135673, '🍀 FER - Federaţia Ecologistă Română': 0.0017230509368722433, '👤 Minorități - Minorități': 0.0037852731213894415, '🔘 PRNR - Partidul Reconstrucţiei Naţionale din România': 0.002825888822961708, '🔘 PDM - Partidul Democrat al Muncii': 0.0014414145529117928, '🔘 PLS - Partidul Liber Schimbist': 0.0033345942564133643, '🔘 AUR - Alianţa pentru Unitatea Românilor': 0.002502507213092278, '📐 PNL-CD - Partidul Naţional Liberal': 0.002483342966901878, '🔘 GDC - Gruparea Democratică de Centru': 0.0024744858631404643, '🇯🇴 Jordánia': 0.005103462572950642, '🇬🇪 Grúzia': 0.004863917819988829, '🇦🇲 Örményország': 0.004474894561133693, '🇰🇼 Kuvait': 0.004853453234238512, '🔘 FC - Forţa Civică': 0.0038577200273608612, '🇸🇳 Szenegál': 0.002629681776278309, 'Republica Franceză - Senat': 0.0018806742450116795, '🇨🇭 Svájc': 0.0033703335011137283, '🇶🇦 Katar': 0.003615761126463582, '🔘 PAR - Partidul Alternativa României': 0.0030497458199216865, '🔘 PTLDR - Partidul Tineretului Liber Democrat din România': 0.002247511053473924, 'fosta Republică Iugoslavă Macedonia': 0.0013816017263685201}
open('json/plotter_csoportok.json','w').write(json.dumps(network))
7125488
N=5000
n=15
key='geometric'
for tip in tipusok:
for tip2 in tipusok[tip]:
print('\n------',tip,tip2,'------')
g=[i for i in network[tip][tip2]['links'] if i['value']>N]
print(' ------by value------')
nset1=set()
for k,i in enumerate(sorted(g, key=lambda k: k['value'],reverse=True)[:n]):
if k<5:
print(i['source'],i['target'],i[key],i['value'])
nset1.add(tuple(np.sort([i['source'],i['target']])))
print(' ------by '+key+'------')
nset2=set()
for k,i in enumerate(sorted(g, key=lambda k: k[key],reverse=True)[:n]):
if k<5:
print(i['source'],i['target'],i[key],i['value'])
nset2.add(tuple(np.sort([i['source'],i['target']])))
print(' ------common------')
for i in nset1.intersection(nset2):
print(i)
------ Bizottság Bizottság ------ ------by value------ ⏫ Gazdaság, ipar ➿ Infrastruktúra, energia, kommunikáció 6.3815852945016855 24729.79357480326 🔀 Állami ügyek 🚻 Munka, szociális és családi ügyek 2.770967662287746 22988.38533477297 🚻 Munka, szociális és családi ügyek 🔄 Közigazgatás, környezetvédelem 2.721019701321973 22978.028420834973 🔀 Állami ügyek 🔄 Közigazgatás, környezetvédelem 2.503839384409689 21451.718851576206 ⏺️ Európa ⏫ Gazdaság, ipar 2.5424269852369554 20345.724792275054 ------by geometric------ ⏫ Gazdaság, ipar ➿ Infrastruktúra, energia, kommunikáció 6.3815852945016855 24729.79357480326 ➿ Infrastruktúra, energia, kommunikáció 🔄 Közigazgatás, környezetvédelem 5.214994533327797 19676.21109542993 🛃 Biztonság 🌐 Külpolitika, diaszpóra 4.753380998921376 7375.420321314794 ➿ Infrastruktúra, energia, kommunikáció 🛃 Biztonság 4.555302494401599 10766.304167201957 🔀 Állami ügyek 🚹 Emberi jogok, kisebbségek 3.503115673195939 16457.96633761585 ------common------ ('🔠 Oktatás, tudomány, sport', '🚻 Munka, szociális és családi ügyek') ('➿ Infrastruktúra, energia, kommunikáció', '🔄 Közigazgatás, környezetvédelem') ('⏫ Gazdaság, ipar', '➿ Infrastruktúra, energia, kommunikáció') ('🔀 Állami ügyek', '🔄 Közigazgatás, környezetvédelem') ('🔀 Állami ügyek', '🚻 Munka, szociális és családi ügyek') ('🔀 Állami ügyek', '🚹 Emberi jogok, kisebbségek') ('⏫ Gazdaság, ipar', '⏺️ Európa') ('🔄 Közigazgatás, környezetvédelem', '🚻 Munka, szociális és családi ügyek') ------ Ország Ország ------ ------by value------ 🇲🇦 Marokkó 🇫🇷 Franciaország 11.556748483650424 13181.936535653984 🇨🇳 Kína 🇮🇹 Olaszország 26.50394646393255 12451.171035058527 🇨🇳 Kína 🇰🇷 Dél-Korea 20.079686797979093 12257.336594856633 🇸🇮 Szlovénia 🇨🇿 Czechia 31.97214452609909 11531.93966238356 🇨🇦 Kanada 🇮🇹 Olaszország 19.60198093939084 11267.420423988084 ------by geometric------ 🇸🇮 Szlovénia 🇨🇿 Czechia 31.97214452609909 11531.93966238356 🇨🇳 Kína 🇮🇹 Olaszország 26.50394646393255 12451.171035058527 🇸🇮 Szlovénia 🇸🇰 Szlovákia 25.307823696917435 9988.484227807989 🇦🇿 Azerbajdzsán 🇹🇷 Törökország 23.74877770870401 7367.774933254753 🇨🇳 Kína 🇱🇧 Libanon 22.232883485319345 10347.379256902952 ------common------ ('🇪🇸 Spanyolország', '🇮🇹 Olaszország') ('🇨🇳 Kína', '🇮🇹 Olaszország') ('🇨🇳 Kína', '🇱🇧 Libanon') ('🇨🇿 Czechia', '🇭🇷 Horvátország') ('🇨🇳 Kína', '🇰🇷 Dél-Korea') ('🇨🇿 Czechia', '🇸🇮 Szlovénia') ('🇯🇵 Japán', '🇰🇷 Dél-Korea') ('🇨🇦 Kanada', '🇮🇹 Olaszország') ('🇧🇬 Bulgária', '🇨🇦 Kanada') ------ Megye Párt ------ ------by value------ 🇷🇴 Bukarest 🌹 PSD - Partidul Social Democrat 87.86548483252996 18120.20076267836 🇷🇴 Bukarest 📐 PNL - Partidul Naţional Liberal 116.76550645203189 16771.311820854728 🇷🇴 Iași 🌹 PSD - Partidul Social Democrat 33.02456945564692 12441.217436905392 🇷🇴 Prahova 🌹 PSD - Partidul Social Democrat 27.766357873987648 11810.660221959935 🇷🇴 Bákó 🌹 PSD - Partidul Social Democrat 21.836376567942505 10787.24092443513 ------by geometric------ 🇷🇴 Kovászna 🌷 RMDSZ - Romániai Magyar Demokrata Szövetség 207.69454948102333 9797.30941356248 🇷🇴 Hargita 🌷 RMDSZ - Romániai Magyar Demokrata Szövetség 201.5719535421448 10399.149668255362 🇷🇴 Bukarest 🔷 USR - Uniunea Salvaţi România 164.67544708760144 8672.33137038993 🇷🇴 Bukarest 📐 PNL - Partidul Naţional Liberal 116.76550645203189 16771.311820854728 🇷🇴 Bukarest 🌹 PSD - Partidul Social Democrat 87.86548483252996 18120.20076267836 ------common------ ('🇷🇴 Hargita', '🌷 RMDSZ - Romániai Magyar Demokrata Szövetség') ('🇷🇴 Prahova', '🌹 PSD - Partidul Social Democrat') ('🇷🇴 Bukarest', '🔶 PDL - Partidul Democrat Liberal') ('🇷🇴 Bukarest', '📐 PNL - Partidul Naţional Liberal') ('🇷🇴 Iași', '🌹 PSD - Partidul Social Democrat') ('🇷🇴 Bukarest', '🔷 USR - Uniunea Salvaţi România') ('🇷🇴 Bákó', '🌹 PSD - Partidul Social Democrat') ('🇷🇴 Bukarest', '🌹 PSD - Partidul Social Democrat') ('🇷🇴 Buzău', '🌹 PSD - Partidul Social Democrat') ('🇷🇴 Kovászna', '🌷 RMDSZ - Romániai Magyar Demokrata Szövetség') ------ Megye Bizottság ------ ------by value------ 🇷🇴 Bukarest 🎦 Művészet, média 22.480999780043156 10830.883350022794 🇷🇴 Bukarest 🌐 Külpolitika, diaszpóra 12.986946971080092 10579.55306360625 🇷🇴 Bukarest 🚻 Munka, szociális és családi ügyek 8.218809658888784 9216.778071435285 🇷🇴 Bukarest 🔀 Állami ügyek 5.3483053008896615 8566.916323345182 🇷🇴 Bukarest ⏫ Gazdaság, ipar 4.978623249388054 7691.277865978298 ------by geometric------ 🇷🇴 Bukarest 🎦 Művészet, média 22.480999780043156 10830.883350022794 🇷🇴 Diaszpóra 🌐 Külpolitika, diaszpóra 18.445381759710465 5805.441164838362 🇷🇴 Bukarest 🌐 Külpolitika, diaszpóra 12.986946971080092 10579.55306360625 🇷🇴 Iași 🔠 Oktatás, tudomány, sport 12.159777108937417 6536.234817559425 🇷🇴 Bukarest 🚻 Munka, szociális és családi ügyek 8.218809658888784 9216.778071435285 ------common------ ('⏫ Gazdaság, ipar', '🇷🇴 Bukarest') ('🇷🇴 Kolozs', '🔠 Oktatás, tudomány, sport') ('⏫ Gazdaság, ipar', '🇷🇴 Prahova') ('🇷🇴 Bukarest', '🚻 Munka, szociális és családi ügyek') ('🇷🇴 Bukarest', '🔠 Oktatás, tudomány, sport') ('🇷🇴 Bukarest', '🌐 Külpolitika, diaszpóra') ('🇷🇴 Bukarest', '🎦 Művészet, média') ('🇷🇴 Iași', '🔠 Oktatás, tudomány, sport') ('⏺️ Európa', '🇷🇴 Bukarest') ('♿️ Egészségügy', '🇷🇴 Bukarest') ('🇷🇴 Brassó', '🔀 Állami ügyek') ('🇷🇴 Diaszpóra', '🌐 Külpolitika, diaszpóra') ('⏫ Gazdaság, ipar', '🇷🇴 Brassó') ('🇷🇴 Bukarest', '🔀 Állami ügyek') ------ Megye Ország ------ ------by value------ 🇷🇴 Bukarest 🇫🇷 Franciaország 33.79416821490717 8832.854055227512 🇷🇴 Bukarest 🇮🇱 Izrael 42.60015947037402 6865.587562850804 🇷🇴 Bukarest 🇭🇺 Magyarország 19.513911848759772 5057.887444764805 🇷🇴 Bihar 🇭🇺 Magyarország 44.85370531668689 5031.32116195008 ------by geometric------ 🇷🇴 Bihar 🇭🇺 Magyarország 44.85370531668689 5031.32116195008 🇷🇴 Bukarest 🇮🇱 Izrael 42.60015947037402 6865.587562850804 🇷🇴 Bukarest 🇫🇷 Franciaország 33.79416821490717 8832.854055227512 🇷🇴 Bukarest 🇭🇺 Magyarország 19.513911848759772 5057.887444764805 ------common------ ('🇮🇱 Izrael', '🇷🇴 Bukarest') ('🇭🇺 Magyarország', '🇷🇴 Bihar') ('🇫🇷 Franciaország', '🇷🇴 Bukarest') ('🇭🇺 Magyarország', '🇷🇴 Bukarest') ------ Párt Bizottság ------ ------by value------ 🌹 PSD - Partidul Social Democrat 🔄 Közigazgatás, környezetvédelem 36.40802788855921 42239.99235359756 🌹 PSD - Partidul Social Democrat 🔀 Állami ügyek 34.710301451591356 41245.38678919411 🌹 PSD - Partidul Social Democrat ⏫ Gazdaság, ipar 32.21093082827018 38825.25051682637 🌹 PSD - Partidul Social Democrat 🚻 Munka, szociális és családi ügyek 38.34153667308945 36639.44709672594 🌹 PSD - Partidul Social Democrat 🌐 Külpolitika, diaszpóra 20.223508582210595 26609.84873658999 ------by geometric------ 🌹 PSD - Partidul Social Democrat 🚻 Munka, szociális és családi ügyek 38.34153667308945 36639.44709672594 🌹 PSD - Partidul Social Democrat 🔄 Közigazgatás, környezetvédelem 36.40802788855921 42239.99235359756 🌹 PSD - Partidul Social Democrat 🔀 Állami ügyek 34.710301451591356 41245.38678919411 🌹 PSD - Partidul Social Democrat ⏫ Gazdaság, ipar 32.21093082827018 38825.25051682637 📐 PNL - Partidul Naţional Liberal 🚻 Munka, szociális és családi ügyek 23.68707567074256 24626.697635912107 ------common------ ('🌹 PSD - Partidul Social Democrat', '🚰 Mezőgazdaság, erdők') ('🌹 PSD - Partidul Social Democrat', '🔀 Állami ügyek') ('🌹 PSD - Partidul Social Democrat', '🚻 Munka, szociális és családi ügyek') ('📐 PNL - Partidul Naţional Liberal', '🚰 Mezőgazdaság, erdők') ('🌹 PSD - Partidul Social Democrat', '🔄 Közigazgatás, környezetvédelem') ('📐 PNL - Partidul Naţional Liberal', '🔀 Állami ügyek') ('📐 PNL - Partidul Naţional Liberal', '🚻 Munka, szociális és családi ügyek') ('⏫ Gazdaság, ipar', '🌹 PSD - Partidul Social Democrat') ('🌐 Külpolitika, diaszpóra', '🌹 PSD - Partidul Social Democrat') ('🌹 PSD - Partidul Social Democrat', '🔠 Oktatás, tudomány, sport') ('⏫ Gazdaság, ipar', '📐 PNL - Partidul Naţional Liberal') ('🌹 PSD - Partidul Social Democrat', '💹 Pénzügy') ------ Párt Ország ------ ------by value------ 🌹 PSD - Partidul Social Democrat 🇸🇰 Szlovákia 45.10801169781598 17944.01375094544 🌹 PSD - Partidul Social Democrat 🇮🇳 India 38.85123522399486 17053.20113581174 🌹 PSD - Partidul Social Democrat 🇦🇺 Ausztrália 37.482481510540815 16729.29882776785 🌹 PSD - Partidul Social Democrat 🇸🇪 Svédország 31.34425985660645 16718.547390287873 📐 PNL - Partidul Naţional Liberal 🇫🇷 Franciaország 29.683676361468503 16342.327291171045 ------by geometric------ 🌹 PSD - Partidul Social Democrat 🇸🇰 Szlovákia 45.10801169781598 17944.01375094544 🌹 PSD - Partidul Social Democrat 🇮🇳 India 38.85123522399486 17053.20113581174 🌹 PSD - Partidul Social Democrat 🇦🇺 Ausztrália 37.482481510540815 16729.29882776785 🌹 PSD - Partidul Social Democrat 🇫🇮 Finnország 34.97970645866033 15480.64388179426 ⚪️ FSN - Frontul Salvării Naţionale 🇮🇹 Olaszország 33.45423676527179 9730.475995199435 ------common------ ('🇦🇺 Ausztrália', '🌹 PSD - Partidul Social Democrat') ('🇸🇪 Svédország', '🌹 PSD - Partidul Social Democrat') ('🇪🇸 Spanyolország', '🌹 PSD - Partidul Social Democrat') ('🇫🇮 Finnország', '🌹 PSD - Partidul Social Democrat') ('🇮🇳 India', '🌹 PSD - Partidul Social Democrat') ('🇫🇷 Franciaország', '📐 PNL - Partidul Naţional Liberal') ('🇸🇰 Szlovákia', '🌹 PSD - Partidul Social Democrat') ('🇭🇷 Horvátország', '🌹 PSD - Partidul Social Democrat') ('🇱🇺 Luxemburg', '🌹 PSD - Partidul Social Democrat') ('🇿🇦 Dél-Afrika', '🌹 PSD - Partidul Social Democrat')
Plots