5년동안 수집한 개인 인간관계 데이터를 분석합니다.
인간관계를 분석합니다. 이번에 파이콘 한국 2018에서 발표하게 되어 발표자료를 준비하고 있습니다. 일단 여기에는 그림은 들어가지 않을 예정이고, 코드만 정리해서 보여줄 예정입니다. 발표자료는 여기서 보실 수 있습니다. 아무래도 필요한 부분들을 ...
Python, Java, AI/ML, Vim, Web, CS 이론 등 소프트웨어 개발 및 엔지니어링 기록
인간관계를 분석합니다. 이번에 파이콘 한국 2018에서 발표하게 되어 발표자료를 준비하고 있습니다. 일단 여기에는 그림은 들어가지 않을 예정이고, 코드만 정리해서 보여줄 예정입니다. 발표자료는 여기서 보실 수 있습니다. 아무래도 필요한 부분들을 ...
svg를 png로 바꾸고 있습니다. graphviz를 사용할 때, svg, png, pdf 로 모두 저장할 수 있지만, png로 저장할 때 dpi가 매우 낮게 설정되는 일들이 발생합니다. 어떤 글에서는 를 사용해서 dpi를 graph의 attri...
runtimerror 예전에도 맥에서 graphviz를 잘 실행했는데 오늘은 뭐가 잘 안되더군요. 에러는 다음과 같았습니다. 잘 모를 때는 그냥 검색을 해보면 되는데, 검색해보면 스택오버플로우에서 아주 잘 정리된 답변이 있습니다. 아래를 순서대로...
DiGraph DiGraph는 방향성이 있는 네트워크를 말합니다. 일반적인 graph라면 edge를 그냥 그리면 되는데, 방향성이 있는 graph는 화살표를 잘 그려줘야 합니다. arrow style은 여기에 볼 수 있는데, 각각 어떻게 나오는지...
random tree 만들기 random tree를 만들거에요. tree라는 것은 parent, children를 가지는 스트럭쳐죠. 저는 parent, children로 node를 접근하는 건 만들지 않았습니다만, random 하게 tree를 ...
title 위치 바꾸기 다른 일에는 별 문제가 없는데, heatmap을 그릴때는 종종 문제가 됩니다. 특히 xtick을 위쪽으로 두면 다음 그림에서처럼 xtick과 title이 겹쳐서 보기 흉해져요. 그림을 보면, title과 xtick이 겹쳐 ...
mode를 찾읍시다. 대상 데이터의 분포가 normal, exp, poisson 등 의 분포인 것을 확실하게 알 수 있으면 좋겠지만, business 환경에서는 이것을 아는게 좀 어려워요. 일단 데이터의 수도 적으니까요. 그래서 보통 triang...
정수를 여러 그룹으로 쪼개죠 이미 스택오버플로우에 잘 정리되어 있습니다. 제가 지금 정수를 다른 수들로 쪼개는 일이 필요해서 이용했는데, 그 참에 정리를 하려고 썼습니다. 참 신기하게, 코딩을 제대로 하려고 하다보면, 수학적인 개념들이 좀 들어가...
havelhakimigraph networkx에 라는 랜덤한 bipartite 그래프 생성기가 있습니다. 만약 bipartite set가 각각 5개, 3개 라면, 그 크기의 각 node의 deg sequence를 넘겨주면 그 deg들에 맞는 gr...
노드를 바꿔주기 networkx에는 꽤 괜찮은 random graph generator들이 많이 있습니다. 단 만들 때부터 node set를 정하고 만들기는 조금 어려워요. 그렇다면 일단 만든 다음에 바꿔주면 됩니다 하하핫 쉽죠. 바꿔주는 방법이...
리스트 내부 값을 섞읍시다. 간단하게 말 그대로, 리스트의 값들을 죽 섞는 것을 말합니다. 가끔 이런게 필요하죠. 를 이용하면 되긴 하는데, 아쉬운 것이, 값을 리턴해주는 형식이 아닙니다. 즉, 전달받은 array를 셔플해서 원래 메모리에 그대로...
bipartite graph bipartie graph는 set A와 set B 간에는 연결되는데, A의 node a들 끼리 연결되거나, B의 node b들 끼리 연결되는 일이 없는 경우를 말합니다. 예를 들면, set A는 사람이고, set B...
네트워크에서 community 찾기 일단 이건 일종의 clustering이라고 생각하셔도 상관없습니다. 일단 점과 선으로 된 네트워크를 구성했을 때, 비슷한 집단끼리 묶어보고싶잖아요. 전체 네트워크만 보는 건 큰 의미가 없으니까 이걸 좀 비슷한 ...
아주 간단합니다. 사실 너무 간단해서 굳이 이걸 포스팅할 필요가 있는가 라는 생각도 들긴 하는데..... 다음처럼 해당 node의 정보값(정확히는 attr dictionary)에 그대로 넣어주면 됩니다. 단 edge는 tuple이 key값으로 들어감
네트워크를 다양한 레이아웃에 따라서 2차원에 그리기. 에서 , 등으로 그림을 그릴 때는 이미 axis에서 어떤 좌표에 그림을 그리면 될지가 명확하게 나와 있습니다만, network에서는 개별 node에 좌표값이 없기 때문에 어디에 그려야 하는지 ...
대부분의 plt 구성요소에서는 그냥 다음과 같이 진행합니다. 당연히 에서도 로 넘겨주면 된다고 생각했는데, 생각처럼 되지 않습니다. stackoverflow에도 약간 대답이 부실하더라구요. 처음 만들 때 값을 설정해서 한번에 넘겨주는 방식이 아니...