51 lines
1.2 KiB
Typst
51 lines
1.2 KiB
Typst
#import "@preview/cetz:0.2.2"
|
|
|
|
#let data = csv("./sorted_configurations_with_diff.csv")
|
|
|
|
#let errorrate = data.enumerate().map(
|
|
row => (row.at(0),calc.log(float(row.at(1).at(1))))
|
|
)
|
|
#let diff = data.enumerate().map(
|
|
row => (row.at(0),float(row.at(1).at(2)))
|
|
)
|
|
|
|
#let conf = data.enumerate().map(
|
|
row => (row.at(0), row.at(1).at(0))
|
|
)
|
|
|
|
#let formatter(v) = [$10^#v$]
|
|
|
|
|
|
#cetz.canvas({
|
|
import cetz.draw: *
|
|
import cetz.plot
|
|
|
|
set-style(
|
|
axes: (bottom: (tick: (label: (angle: 90deg, offset: 0.5))))
|
|
)
|
|
|
|
plot.plot(
|
|
y-label: "Bit error rate",
|
|
x-label: "Enrollment, reconstruction temperature",
|
|
legend: "legend.north",
|
|
legend-style: (offset: (2.25, 0), stroke: none),
|
|
x-tick-step: none,
|
|
x-ticks: conf,
|
|
y-format: formatter,
|
|
y-tick-step: 0.5,
|
|
axis-style: "scientific-auto",
|
|
size: (16,6),
|
|
plot.add(errorrate, axes: ("x", "y"), style: (stroke: (paint: red)), label: $op("BER")(100, 2^2)$),
|
|
plot.add-hline(1)
|
|
)
|
|
|
|
plot.plot(
|
|
y2-label: "Temperature difference",
|
|
legend: "legend.north",
|
|
legend-style: (offset: (-2.25, 0), stroke: none),
|
|
y2-tick-step: 10,
|
|
axis-style: "scientific-auto",
|
|
size: (16,6),
|
|
plot.add(diff, axes: ("x1","y2"), label: [Temperature difference]),
|
|
)
|
|
})
|