-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathplot_variables.py
More file actions
287 lines (260 loc) · 12.3 KB
/
Copy pathplot_variables.py
File metadata and controls
287 lines (260 loc) · 12.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
PLOT_COORDINATES = ["x","y","z"]
PLOT_AUX_COORDINATES = ["x_group","y_group","z_group"]
PLOT_ALL_COORDINATES = PLOT_COORDINATES+PLOT_AUX_COORDINATES
PLOT_CORE_FEATURES = {
"marker_size": {"dtype": float},
"line_width":{"dtype": float},
"line_style": {"dtype": str},
"colour": {"dtype": str},
"opacity": {"dtype": float},
"hatch_opacity": {"dtype": float},
"zorder": {"dtype": float},
"annotate": {"dtype": str},
"label": {"dtype": str},
"marker": {"dtype": str},
"hatch": {"dtype": str},
}
PLOT_DERIVATIVES = ["_id"]
PLOT_COORDINATE_DERIVATIVES = []
for var in PLOT_COORDINATES:
for derivative in PLOT_DERIVATIVES:
PLOT_COORDINATE_DERIVATIVES.append(var+derivative)
PLOT_VARIABLES = PLOT_ALL_COORDINATES + list(PLOT_CORE_FEATURES.keys())
PLOT_COORDINATES_AND_CORE_FEATURES = PLOT_ALL_COORDINATES + list(PLOT_CORE_FEATURES.keys())
PLOT_VARIABLES_AND_DERIVATIVES = PLOT_VARIABLES + PLOT_COORDINATE_DERIVATIVES
# Type of plots
PLOT_VIEWS = {
"simple":"plot_simple",
"spatial":"plot_spatial",
"tabular":"plot_tabular"
}
PLOT_TYPES = {
"empty": "",
"line": "plot",
"scatter" : "scatter",
"imshow": "imshow",
"geoshow": "geoshow"
}
PLOT_MARKERS = {
"sample_name": {
"else":".",
"table": "s",
"intensity":"^",
},
"type": {
"else":".",
"SIM_MCMC": "o",
"JointTableSIM_MCMC": "s",
"SIM_NN": "^",
"NonJointTableSIM_NN": "P",
"JointTableSIM_NN": "*",
},
"sigma":{
"else":">",
"low":"v",
"high":"^"
}
}
COLOR_NAMES = {
"silver": "#C0C0C0",
"deepred": "#E20000",
"skyblue": "#1E88E5",
"tab20b_purple": "#5856c4",
"tab20b_green": "#a6c858",
"tab20b_orange": "#e0ad41",
"tab20b_red": "#ca4a58",
"tab20b_pink": "#c153af",
"tab20c_blue": "#8ebeda"
}
PLOT_COLOURS = {
"type": {
"SIM_MCMC": COLOR_NAMES["tab20b_purple"],
"SIM_NN": COLOR_NAMES["tab20b_orange"],
"JointTableSIM_MCMC":COLOR_NAMES["tab20b_green"],
"NonJointTableSIM_NN":COLOR_NAMES["tab20b_red"],
"JointTableSIM_NN":COLOR_NAMES["tab20c_blue"],
},
"title": {
"_unconstrained":COLOR_NAMES["silver"],
"_total_constrained":COLOR_NAMES["tab20b_purple"],
"_row_constrained":COLOR_NAMES["tab20b_green"],
"_total_intensity_row_table_constrained":COLOR_NAMES["tab20b_green"],
"_doubly_constrained":COLOR_NAMES["tab20b_orange"],
"_doubly_10#%_cell_constrained":COLOR_NAMES["tab20b_red"],
"_doubly_20#%_cell_constrained":COLOR_NAMES["tab20c_blue"],
"_doubly_10%_cell_constrained":COLOR_NAMES["tab20b_red"],
"_doubly_20%_cell_constrained":COLOR_NAMES["tab20c_blue"],
},
}
PLOT_HATCHES = {
"sigma": {
"else": "***",
"high": "+++",
"low": "OOO"
},
"type": {
"else":".",
"SIM_MCMC": "oo",
"JointTableSIM_MCMC": "..",
"SIM_NN": "-",
"NonJointTableSIM_NN": "++",
"JointTableSIM_NN": "**",
}
}
PLOT_LINESTYLES = {}
RAW_EXPRESSIONS = {
"SIM_MCMC": '\\ellamframeworktag',
"JointTableSIM_MCMC": '\\zachosframeworktag',
"SIM_NN": '\\gaskinframeworktag',
"JointTableSIM_NN": '\\frameworktag (Joint)',
"NonJointTableSIM_NN": '\\frameworktag (Disjoint)',
"_unconstrained":'$\\emptyset$',
"_total_constrained":'$\\mytabletotal$',
"_total_intensity_row_table_constrained":'$\\myintensitytotal,\\mytablerowsums$',
"_row_constrained":'$\\mytablerowsums$',
"_doubly_constrained":'$\\mytablerowsums,\\mytablecolsums$',
"_doubly_10#%_cell_constrained":'$\\mytablerowsums,\\mytablecolsums,\\mytablecells{_1}$',
"_doubly_20#%_cell_constrained":'$\\mytablerowsums,\\mytablecolsums,\\mytablecells{_2}$',
"_doubly_10%_cell_constrained":'$\\mytablerowsums,\\mytablecolsums,\\mytablecells{_1}$',
"_doubly_20%_cell_constrained":'$\\mytablerowsums,\\mytablecolsums,\\mytablecells{_2}$',
"TotallyConstrained":'$\\myintensitytotal$',
"ProductionConstrained":'$\myintensityrowsums$',
"dest_attraction_ts_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr \\; ; \\; \\obsdata, \\boldsymbol{\\nu} \\right)$",
"dest_attraction_ts_likelihood_loss,table_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr, \\mytable, \\myintensity \\; ; \\; \\obsdata, \\boldsymbol{\\nu} \\right)$",
"dest_attraction_ts_likelihood_loss,total_intensity_distance_likelihood_loss,table_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr,\\mytable,\\myintensity \\; ; \\; \\obsdata^{\\myintensityoned}, \\boldsymbol{\\nu} \\right)$",
"dest_attraction_ts_likelihood_loss,total_intensity_distance_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr, \\myintensity \\; ; \\; \\obsdata^{\\myintensityoned}, \\boldsymbol{\\nu} \\right)$",
"dest_attraction_ts_likelihood_loss,total_table_distance_likelihood_loss,table_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr,\\mytable,\\myintensity \\; ; \\; \\obsdata^{\\mytableoned}, \\boldsymbol{\\nu} \\right)$",
"dest_attraction_ts_likelihood_loss,total_table_distance_likelihood_loss":"$\\lossoperator\\left(\\mylogdestattr, \\mytable \\; ; \\; \\obsdata^{\\mytableoned}, \\boldsymbol{\\nu} \\right)$",
"table_likelihood_loss":"$\\lossoperator\\left(\\mytable, \\myintensity \\right)$",
"total_intensity_distance_likelihood_loss,table_likelihood_loss":"$\\lossoperator\\left(\\mytable,\\myintensity \\; ; \\; \\obsdata^{\\myintensityoned}, \\boldsymbol{\\nu} \\right)$",
"total_intensity_distance_likelihood_loss":"$\\lossoperator\\left( \\myintensity \\; ; \\; \\obsdata^{\\myintensityoned}, \\boldsymbol{\\nu} \\right)$",
"total_intensity_distance_loss":"$\\lossoperator\\left( \\myintensity \\; ; \\; \\obsdata^{\\myintensityoned} \\right)$",
"total_table_distance_likelihood_loss,table_likelihood_loss":"$\\lossoperator\\left(\\mytable,\\myintensity \\; ; \\; \\obsdata^{\\mytableoned}, \\boldsymbol{\\nu} \\right)$",
"total_table_distance_likelihood_loss":"$\\lossoperator\\left(\\mytable \\; ; \\; \\obsdata^{\\mytableoned}, \\boldsymbol{\\nu} \\right)$",
"total_table_distance_loss":"$\\lossoperator\\left(\\mytable \\; ; \\; \\obsdata^{\\mytableoned} \\right)$"
}
LABEL_EXPRESSIONS = {
"sigma": '$\\sigma = '
}
LATEX_EXPRESSIONS = {**RAW_EXPRESSIONS,**LABEL_EXPRESSIONS}
LATEX_COORDINATES = ['label','annotate']+PLOT_COORDINATES+PLOT_AUX_COORDINATES
# \usepackage{/home/iz230/GeNSIT/gensit/static/neurips_2024}
# \usepackage{mathptmx} % matches times roman font for math equations
# \usepackage{amssymb}
# \usepackage{/home/iz230/GeNSIT/gensit/static/PhDThesisPSnPDF}
# \usepackage{amscd}
# \usepackage{dsfont}
# \usepackage{commath}
# \usepackage{mathtools}
# \usepackage{amsmath}
# \usepackage{amssymb}
# \usepackage{amsthm}
# \usepackage{newtxtext,newtxmath}
LATEX_PREAMBLE = r'''
\usepackage{/home/iz230/GeNSIT/gensit/static/PhDThesisPSnPDF}
\usepackage{color}
\usepackage[table]{xcolor} % colors
\usepackage{amscd}
\usepackage{dsfont}
\usepackage{commath}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{newtxtext,newtxmath}
\newcommand{\deepred}[1]{{\textcolor[HTML]{E20000}{#1}}}
\newcommand{\zachosframeworkbasename}{SIT-MCMC}
\newcommand{\gaskinframeworkbasename}{SIM-NN}
\newcommand{\ellamframeworkbasename}{SIM-MCMC}
\newcommand{\liuframeworkbasename}{GMEL}
\newcommand{\zachosframeworkfullname}{\textbf{S}patial \textbf{I}nteraction \textbf{T}able \textbf{M}arkov \textbf{C}hain \textbf{M}onte \textbf{C}arlo \;}
\newcommand{\gaskinframeworkfullname}{\textbf{S}patial \textbf{I}nteraction \textbf{M}odel \textbf{N}eural \textbf{N}etwork\;}
\newcommand{\ellamframeworkfullname}{\textbf{S}patial \textbf{I}nteraction \textbf{M}odel \textbf{M}arkov \textbf{C}hain \textbf{M}onte \textbf{C}arlo \;}
\newcommand{\liuframeworkfullname}{\textbf{G}eo-contextual \textbf{M}ultitask \textbf{E}mbedding \textbf{L}earner \;}
\newcommand{\zachosframework}{\zachosframeworkbasename \;}
\newcommand{\gaskinframework}{\gaskinframeworkbasename \;}
\newcommand{\ellamframework}{\ellamframeworkbasename \;}
\newcommand{\liuframework}{\liuframeworkbasename \;}
\newcommand{\zachosframeworktag}{\textsc{\zachosframeworkbasename}}
\newcommand{\gaskinframeworktag}{\textsc{\gaskinframeworkbasename}}
\newcommand{\ellamframeworktag}{\textsc{\ellamframeworkbasename}}
\newcommand{\liuframeworktag}{\textsc{\liuframeworkbasename}}
\newcommand{\frameworkname}{GeNSIT}
\newcommand{\frameworktag}{\textsc{\frameworkname}}
\newcommand{\frameworkpackage}{\texttt{gensit}}
\newcommand{\frameworkfig}{\hyperref[fig:framework]{\frameworktag}}
\newcommand{\frameworkfullname}{\textbf{Ge}nerating \textbf{N}eural \textbf{S}patial \textbf{I}nteraction \textbf{T}ables}
\newcommand{\frameworknamespace}{\frameworkname\;}
\newcommand{\frameworktagspace}{\textsc{\frameworktag\;}}
\newcommand{\frameworkpackagespace}{\frameworkpackage \;}
\newcommand{\frameworkfigspace}{\hyperref[fig:framework]{\frameworktagspace}}
\newcommand{\tablecolour}[1]{#1}
\newcommand{\intensitycolour}[1]{#1}
\newcommand{\constraintcolour}[1]{\deepred{#1}}
\newcommand{\rowsumscolour}[1]{\deepred{#1}}
\newcommand{\colsumscolour}[1]{\deepred{#1}}
\newcommand{\totalcolour}[1]{\deepred{#1}}
\newcommand{\cellcolour}[1]{\deepred{#1}}
\newcommand{\uncostrainedcolour}[1]{#1}
\newcommand{\totallyconstrainedcolour}[1]{#1}
\newcommand{\singlyconstrainedcolour}[1]{#1}
\newcommand{\singlyconstrainedgaskincolour}[1]{#1}
\newcommand{\singlyconstrainedellamcolour}[1]{#1}
\newcommand{\doublyconstrainedcolour}[1]{#1}
\newcommand{\doublytencellconstrainedcolour}[1]{#1}
\newcommand{\doublytwentycellconstrainedcolour}[1]{#1}
\newcommand{\mytable}{\tablecolour{\mathbf{T}}}
\newcommand{\myintensity}{\boldsymbol{\Lambda}}
\newcommand{\myprobability}{\intensitycolour{\boldsymbol{\pi}}}
\newcommand{\mytableoned}{\tablecolour{T}}
\newcommand{\myintensityoned}{\intensitycolour{\Lambda}}
\newcommand{\mytablerowsums}{\rowsumscolour{\mathbf{T}_{\cdot+}}}
\newcommand{\mytablecolsums}{\colsumscolour{\mathbf{T}_{+\cdot}}}
\newcommand{\mytablerowsumsoned}[1]{\rowsumscolour{T_{#1+}}}
\newcommand{\mytablecolsumsoned}[1]{\colsumscolour{T_{+1}}}
\newcommand{\mytabletotal}{\totalcolour{T_{++}}}
\newcommand{\mycells}[1]{\mathcal{X}#1}
\newcommand{\mytablecells}[1]{\cellcolour{\mathbf{T}_{\mycells{#1}}}}
\newcommand{\myintensityrowsums}{\rowsumscolour{\boldsymbol{\Lambda}_{\cdot +}}}
\newcommand{\myintensitycolsums}{\colsumscolour{\boldsymbol{\Lambda}_{+\cdot}}}
\newcommand{\myintensityrowsumsoned}[1]{\rowsumscolour{\Lambda_{#1+}}}
\newcommand{\myintensitycolsumsoned}[1]{\colsumscolour{\Lambda_{+1}}}
\newcommand{\myintensitytotal}{\totalcolour{\Lambda_{++}}}
\newcommand{\tableconstraints}{\constraintcolour{\mathcal{C}_{\mytableoned}}}
\newcommand{\intensityconstraints}{\constraintcolour{\mathcal{C}_{\myintensityoned}}}
\newcommand{\allconstraints}{\constraintcolour{\mathcal{C}}}
\newcommand{\unconstrained}[1]{\uncostrainedcolour{#1}}
\newcommand{\totallyconstrained}[1]{\totallyconstrainedcolour{#1}}
\newcommand{\singlyconstrained}[1]{\singlyconstrainedcolour{#1}}
\newcommand{\singlyconstrainedgaskin}[1]{\singlyconstrainedgaskincolour{#1}}
\newcommand{\singlyconstrainedellam}[1]{\singlyconstrainedellamcolour{#1}}
\newcommand{\doublyconstrained}[1]{\doublyconstrainedcolour{#1}}
\newcommand{\doublytencellconstrained}[1]{\doublytencellconstrainedcolour{#1}}
\newcommand{\doublytwentycellconstrained}[1]{\doublytwentycellconstrainedcolour{#1}}
\newcommand{\tablespace}{\mathcal{T}}
\newcommand{\obsdata}{\mathcal{D}}
\newcommand{\obstablespace}{\tablespace_{\obsdata}}
\newcommand{\constrainedtablespace}{\tablespace_{\allconstraints}}
\newcommand{\lossoperator}{\mathcal{L}}
\newcommand{\powerset}{\mathcal{P}}
\newcommand{\groundtruthtable}{\mytable^{*}}
\newcommand{\bigoh}[1]{\mathcal{O}(#1)}
\newcommand{\mytheta}{\boldsymbol{\theta}}
\newcommand{\mylogdestattr}{\mathbf{x}}
\newcommand{\mydestattr}{\mathbf{z}}
\newcommand{\mydestattroned}[1]{z_{#1}}
\newcommand{\mylogdestattrobs}{\mathbf{y}}
\newcommand{\markovbasis}{\mathcal{M}}
'''
LATEX_RC_PARAMETERS = {
# 'mathtext.default': 'regular',
# 'mathtext.fontset': 'stix',
# 'mathtext.fallback': 'stix',
'text.usetex': True,
"font.family": "serif",
'text.latex.preamble': LATEX_PREAMBLE,
}
LEGEND_LOCATIONS = [
'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right',
'center left', 'center right', 'lower center', 'upper center', 'center'
]