In [159]:
%matplotlib inline
import math
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import csv
np.set_printoptions(precision=5)
plt.rcParams['font.size'] = 13
# 日本語対応
mpl.rcParams['font.family'] = 'Osaka'
In [160]:
data = pd.read_csv("Network1.csv")
data
Out[160]:
Participant.id_in_session
Participant.code
Participant.label
Participant._is_bot
Participant._index_in_pages
Participant._max_page_index
Participant._current_app_name
Participant._round_number
Participant._current_page_name
Participant.ip_address
...
Subsession.round_number
Session.code
Session.label
Session.experimenter_name
Session.time_scheduled
Session.time_started
Session.mturk_HITId
Session.mturk_HITGroupId
Session.comment
Session.is_demo
0
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
1
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
2
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
3
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
4
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
5
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
6
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
7
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
8
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
1
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
9
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
10
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
11
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
12
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
13
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
14
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
15
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
16
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
17
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
2
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
18
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
19
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
20
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
21
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
22
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
23
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
24
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
25
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
26
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
3
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
27
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
4
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
28
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
4
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
29
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
4
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
150
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
17
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
151
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
17
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
152
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
17
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
153
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
154
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
155
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
156
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
157
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
158
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
159
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
160
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
161
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
18
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
162
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
163
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
164
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
165
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
166
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
167
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
168
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
169
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
170
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
19
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
171
1
n6zj80ba
NaN
0
140
140
network1
20
ResultsSummary
10.71.223.81
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
172
2
47yu3fhs
NaN
0
140
140
network1
20
ResultsSummary
10.13.217.57
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
173
3
pvfol3ln
NaN
0
140
140
network1
20
ResultsSummary
10.111.206.121
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
174
4
5bu9f5ak
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
175
5
lae8sez4
NaN
0
140
140
network1
20
ResultsSummary
10.170.178.66
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
176
6
zy7uujkq
NaN
0
140
140
network1
20
ResultsSummary
10.238.24.253
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
177
7
5msqrd8g
NaN
0
140
140
network1
20
ResultsSummary
10.178.230.6
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
178
8
s14c3qjo
NaN
0
140
140
network1
20
ResultsSummary
10.79.194.218
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
179
9
c4ej6485
NaN
0
140
140
network1
20
ResultsSummary
10.178.216.75
...
20
wppnzrsj
NaN
NaN
NaN
NaN
NaN
NaN
NaN
1
180 rows × 34 columns
In [161]:
data = pd.read_csv("Network1.csv")
df = data.loc[:, [
"Participant.id_in_session",
"Player.id_in_group",
"Player.player_role",
"Player.action",
"Player.opponents",
"Player.op_actions",
"Subsession.round_number", ]
]
In [162]:
df
Out[162]:
Participant.id_in_session
Player.id_in_group
Player.player_role
Player.action
Player.opponents
Player.op_actions
Subsession.round_number
0
1
1
1
1
[2, 9]
[1, 0]
1
1
2
2
0
1
[3, 1]
[1, 1]
1
2
3
3
1
1
[4, 2]
[0, 1]
1
3
4
4
1
1
[5, 3]
[0, 1]
1
4
5
5
1
0
[6, 4]
[0, 0]
1
5
6
6
1
0
[7, 5]
[1, 0]
1
6
7
7
1
1
[8, 6]
[1, 0]
1
7
8
8
0
1
[9, 7]
[0, 1]
1
8
9
9
0
0
[1, 8]
[1, 1]
1
9
1
1
1
0
[2, 9]
[0, 0]
2
10
2
2
0
0
[3, 1]
[0, 0]
2
11
3
3
0
0
[4, 2]
[0, 0]
2
12
4
4
0
0
[5, 3]
[0, 0]
2
13
5
5
1
0
[6, 4]
[0, 0]
2
14
6
6
0
0
[7, 5]
[0, 0]
2
15
7
7
0
1
[8, 6]
[0, 0]
2
16
8
8
1
0
[9, 7]
[0, 0]
2
17
9
9
1
0
[1, 8]
[0, 0]
2
18
1
1
1
0
[2, 9]
[0, 0]
3
19
2
2
1
0
[3, 1]
[0, 0]
3
20
3
3
1
0
[4, 2]
[0, 0]
3
21
4
4
0
0
[5, 3]
[0, 0]
3
22
5
5
1
0
[6, 4]
[0, 0]
3
23
6
6
1
0
[7, 5]
[1, 0]
3
24
7
7
1
0
[8, 6]
[0, 0]
3
25
8
8
1
1
[9, 7]
[0, 1]
3
26
9
9
1
0
[1, 8]
[0, 0]
3
27
1
1
1
0
[2, 9]
[0, 0]
4
28
2
2
1
0
[3, 1]
[0, 0]
4
29
3
3
0
0
[4, 2]
[0, 0]
4
...
...
...
...
...
...
...
...
150
7
7
0
0
[8, 6]
[0, 0]
17
151
8
8
1
0
[9, 7]
[0, 0]
17
152
9
9
1
0
[1, 8]
[0, 0]
17
153
1
1
1
0
[2, 9]
[0, 0]
18
154
2
2
1
0
[3, 1]
[0, 0]
18
155
3
3
0
0
[4, 2]
[0, 0]
18
156
4
4
0
0
[5, 3]
[0, 0]
18
157
5
5
0
0
[6, 4]
[0, 0]
18
158
6
6
1
0
[7, 5]
[0, 0]
18
159
7
7
0
0
[8, 6]
[0, 0]
18
160
8
8
1
0
[9, 7]
[0, 0]
18
161
9
9
1
0
[1, 8]
[0, 0]
18
162
1
1
1
0
[2, 9]
[0, 0]
19
163
2
2
1
0
[3, 1]
[0, 0]
19
164
3
3
1
0
[4, 2]
[0, 0]
19
165
4
4
1
0
[5, 3]
[0, 0]
19
166
5
5
1
0
[6, 4]
[0, 0]
19
167
6
6
1
0
[7, 5]
[0, 0]
19
168
7
7
0
0
[8, 6]
[0, 0]
19
169
8
8
1
0
[9, 7]
[0, 0]
19
170
9
9
1
0
[1, 8]
[0, 0]
19
171
1
1
1
0
[2, 9]
[0, 0]
20
172
2
2
0
0
[3, 1]
[0, 0]
20
173
3
3
0
0
[4, 2]
[0, 0]
20
174
4
4
1
0
[5, 3]
[0, 0]
20
175
5
5
1
0
[6, 4]
[0, 0]
20
176
6
6
1
0
[7, 5]
[0, 0]
20
177
7
7
1
0
[8, 6]
[0, 0]
20
178
8
8
0
0
[9, 7]
[0, 0]
20
179
9
9
0
0
[1, 8]
[0, 0]
20
180 rows × 7 columns
In [175]:
def plotStageAction(player_actions, player_roles, periods):
fig, axes = plt.subplots(4, 5, figsize=(20, 16))
fig.suptitle("Network1: red-active, blue-inactive", fontsize=24)
for line_axes in axes:
for ax in line_axes:
for d in ["top", "bottom", "right", "left"]:
ax.spines[d].set_visible(False)
ax.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')
ax.tick_params(axis='y', which='both', left='off', right='off', labelleft='off')
x_list = [0, -0.64, -0.98, -0.87, -0.34, 0.34, 0.87, 0.98, 0.64, 0]#[0, 0.95, 0.59, -0.59, -0.95, 0]
y_list = [1, 0.77, 0.18, -0.5, -0.94, -0.94, -0.5, 0.17, 0.77, 1]#[1, 0.31, -0.81, -0.81, 0.31, 1]
for p in range(periods):
ax_x = p//5
ax_y = p%5
axes[ax_x, ax_y].set_title("Period{}".format(p+1), fontsize=16)
axes[ax_x, ax_y].plot(x_list, y_list, color='gray')
for i in range(9):
if player_roles[p][i] == 0:
marker = "o"
else:
marker = "D"
if player_actions[p][i] == 0:
axes[ax_x, ax_y].plot(x_list[i], y_list[i], marker, color='red', markersize=12)
elif player_actions[p][i] == 1:
axes[ax_x, ax_y].plot(x_list[i], y_list[i], marker, color='blue', markersize=12)
elif player_actions[p][i] == 2:
axes[ax_x, ax_y].plot(x_list[i], y_list[i], marker, color='purple', markersize=12)
axes[ax_x, ax_y].set_xlim(-1.1, 1.1)
axes[ax_x, ax_y].set_ylim(-1.1, 1.1)
plt.show()
In [176]:
nodes = [1, 2, 3, 4, 5, 6, 7, 8, 9]
periods = 20
player_actions = [[] for p in range(periods)]
player_roles = [[] for p in range(periods)]
for p in range(periods):
players = df.iloc[p*len(nodes):(p+1)*len(nodes), :]
player_actions[p] = list(players["Player.action"])
player_roles[p] = list(players["Player.player_role"])
plotStageAction(player_actions, player_roles, p+1)
In [ ]:
Content source: myuuuuun/oyama_seminar2016
Similar notebooks: