MilesCranmer commited on
Commit
4eac491
1 Parent(s): fea9443

Improve formatting of plot

Browse files
Files changed (2) hide show
  1. gui/Dockerfile +7 -0
  2. gui/app.py +36 -0
gui/Dockerfile CHANGED
@@ -11,10 +11,17 @@ RUN apt-get update && \
11
  libgl1-mesa-glx \
12
  libglib2.0-0 \
13
  libpython3-dev \
 
 
 
 
14
  && \
15
  apt-get clean && \
16
  rm -rf /var/lib/apt/lists/*
17
 
 
 
 
18
  WORKDIR /code
19
 
20
  COPY ./requirements.txt /code/requirements.txt
 
11
  libgl1-mesa-glx \
12
  libglib2.0-0 \
13
  libpython3-dev \
14
+ libfreetype6-dev \
15
+ pkg-config \
16
+ libfontconfig1 \
17
+ fontconfig \
18
  && \
19
  apt-get clean && \
20
  rm -rf /var/lib/apt/lists/*
21
 
22
+ COPY fonts/*.ttf /usr/local/share/fonts/
23
+ RUN fc-cache -f -v
24
+
25
  WORKDIR /code
26
 
27
  COPY ./requirements.txt /code/requirements.txt
gui/app.py CHANGED
@@ -268,6 +268,8 @@ def main():
268
  blocks["df"] = gr.Dataframe(
269
  headers=["complexity", "loss", "equation"],
270
  datatype=["number", "number", "str"],
 
 
271
  )
272
  blocks["run"] = gr.Button()
273
 
@@ -339,5 +341,39 @@ def replot_pareto(df, maxsize):
339
 
340
  return fig
341
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  if __name__ == "__main__":
343
  main()
 
268
  blocks["df"] = gr.Dataframe(
269
  headers=["complexity", "loss", "equation"],
270
  datatype=["number", "number", "str"],
271
+ wrap=True,
272
+ column_widths=[100, 100, 300],
273
  )
274
  blocks["run"] = gr.Button()
275
 
 
341
 
342
  return fig
343
 
344
+ def replot_pareto(df, maxsize):
345
+ plt.rcParams['font.family'] = 'IBM Plex Mono'
346
+ fig, ax = plt.subplots(figsize=(6, 6), dpi=100)
347
+
348
+ if len(df) == 0 or 'Equation' not in df.columns:
349
+ return fig
350
+
351
+ # Plotting the data
352
+ ax.loglog(df['Complexity'], df['Loss'], marker='o', linestyle='-', color='#333f48', linewidth=1.5, markersize=6)
353
+
354
+ # Set the axis limits
355
+ ax.set_xlim(0.5, maxsize + 1)
356
+ ytop = 2 ** (np.ceil(np.log2(df['Loss'].max())))
357
+ ybottom = 2 ** (np.floor(np.log2(df['Loss'].min() + 1e-20)))
358
+ ax.set_ylim(ybottom, ytop)
359
+
360
+ ax.grid(True, which="both", ls="--", linewidth=0.5, color='gray', alpha=0.5)
361
+ ax.spines['top'].set_visible(False)
362
+ ax.spines['right'].set_visible(False)
363
+
364
+ # Range-frame the plot
365
+ for direction in ['bottom', 'left']:
366
+ ax.spines[direction].set_position(('outward', 10))
367
+
368
+ # Delete far ticks
369
+ ax.tick_params(axis='both', which='major', labelsize=10, direction='out', length=5)
370
+ ax.tick_params(axis='both', which='minor', labelsize=8, direction='out', length=3)
371
+
372
+ ax.set_xlabel('Complexity')
373
+ ax.set_ylabel('Loss')
374
+ fig.tight_layout(pad=2)
375
+
376
+ return fig
377
+
378
  if __name__ == "__main__":
379
  main()