BER plots: Fix latest decimation data import

This commit is contained in:
jaseg 2020-02-21 09:56:41 +01:00
parent 99b9c0ecc1
commit 36951a5f19

View file

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
@ -29,7 +29,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
@ -38,7 +38,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
@ -47,7 +47,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
@ -73,7 +73,7 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
@ -90,7 +90,7 @@
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
@ -104,7 +104,7 @@
},
{
"cell_type": "code",
"execution_count": 221,
"execution_count": 20,
"metadata": {},
"outputs": [
{
@ -124,7 +124,7 @@
},
{
"cell_type": "code",
"execution_count": 77,
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
@ -139,7 +139,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
@ -153,21 +153,13 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-42-882fdfbdc9fa>:4: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ax = plt.subplots()\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "cddadc4204f54789905875fcfb8e4126",
"model_id": "8a090f2d31104ec695a0c68bf39555d9",
"version_major": 2,
"version_minor": 0
},
@ -185,7 +177,7 @@
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
@ -194,7 +186,7 @@
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
@ -374,21 +366,13 @@
},
{
"cell_type": "code",
"execution_count": 217,
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-217-c761a61291a7>:1: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ax = plt.subplots(figsize=(12, 9))\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "42da8a07c0e241f2b1d0f3358e68935b",
"model_id": "b961e7d9571748fd8a58a5579f95743d",
"version_major": 2,
"version_minor": 0
},
@ -402,10 +386,10 @@
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7efd98cd17f0>]"
"[<matplotlib.lines.Line2D at 0x7275b7807450>]"
]
},
"execution_count": 217,
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
@ -459,7 +443,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
@ -469,13 +453,13 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "3e5e478d8d8b4d7f9e08ec7e81def86b",
"model_id": "cebd805ecee34a05b229922af1abfe58",
"version_major": 2,
"version_minor": 0
},
@ -489,12 +473,12 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "84b5e696d97346c5addebb851e4e5c51",
"model_id": "981c5c08524e4b56b72df4ca01e724da",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))"
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))"
]
},
"metadata": {},
@ -506,22 +490,22 @@
"text": [
"nbits=5\n",
"nbits=6\n",
"signal_amplitude=0.00046: ser=0.97396 ±0.00737, br=14.64844\n",
"signal_amplitude=0.00010: ser=0.97396 ±0.00737, br=14.64844\n",
"signal_amplitude=0.00015: ser=0.98958 ±0.00737, br=5.85938\n",
"signal_amplitude=0.00022: ser=0.96875 ±0.01276, br=17.57812\n",
"signal_amplitude=0.00032: ser=0.97396 ±0.00737, br=14.64844\n",
"signal_amplitude=0.00015: ser=0.98958 ±0.00737, br=5.85938\n",
"signal_amplitude=0.00010: ser=0.97396 ±0.00737, br=14.64844\n",
"signal_amplitude=0.00046: ser=0.97396 ±0.00737, br=14.64844\n",
"signal_amplitude=0.00068: ser=0.94792 ±0.01949, br=29.29688\n",
"signal_amplitude=0.00100: ser=0.78125 ±0.02552, br=123.04688\n",
"signal_amplitude=0.00147: ser=0.28646 ±0.03683, br=401.36719\n",
"signal_amplitude=0.00316: ser=0.00521 ±0.00737, br=559.57031\n",
"signal_amplitude=0.00215: ser=0.06250 ±0.03375, br=527.34375\n",
"signal_amplitude=0.00015: ser=0.97917 ±0.01473, br=7.03125\n",
"signal_amplitude=0.00316: ser=0.00521 ±0.00737, br=559.57031\n",
"signal_amplitude=0.00010: ser=0.98958 ±0.00737, br=3.51562\n",
"signal_amplitude=0.00015: ser=0.97917 ±0.01473, br=7.03125\n",
"signal_amplitude=0.00022: ser=0.98438 ±0.00000, br=5.27344\n",
"signal_amplitude=0.00032: ser=0.98438 ±0.00000, br=5.27344\n",
"signal_amplitude=0.00068: ser=0.68229 ±0.09051, br=107.22656\n",
"signal_amplitude=0.00046: ser=0.97917 ±0.01949, br=7.03125\n",
"signal_amplitude=0.00068: ser=0.68229 ±0.09051, br=107.22656\n",
"signal_amplitude=0.00100: ser=0.15104 ±0.05156, br=286.52344\n",
"signal_amplitude=0.00147: ser=0.01562 ±0.00000, br=332.22656\n",
"signal_amplitude=0.00215: ser=0.01562 ±0.00000, br=332.22656\n",
@ -534,10 +518,10 @@
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fe66e0d1be0>"
"<matplotlib.legend.Legend at 0x7275bfe3b490>"
]
},
"execution_count": 19,
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
@ -610,21 +594,13 @@
},
{
"cell_type": "code",
"execution_count": 220,
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-220-44ad44d9c4c6>:1: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ax = plt.subplots(figsize=(12, 9))\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f63ab2c387f948b29d992a3edd04f4fa",
"model_id": "3e654922b013420d83e47b27c43e18dc",
"version_major": 2,
"version_minor": 0
},
@ -638,10 +614,10 @@
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f00ecacf3a0>"
"<matplotlib.legend.Legend at 0x7275bd43da50>"
]
},
"execution_count": 220,
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
@ -674,21 +650,13 @@
},
{
"cell_type": "code",
"execution_count": 218,
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-218-eb5258414ca6>:1: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ((ax, cbar_ax), (intercept_ax, empty)) = plt.subplots(2, 2, figsize=(12, 9), gridspec_kw={'width_ratios': [1, 0.05]})\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6651827b5eca4a0ba46effefd605f06c",
"model_id": "23d3975515a0462e94a01e7b3c5dd1a6",
"version_major": 2,
"version_minor": 0
},
@ -703,95 +671,15 @@
"name": "stderr",
"output_type": "stream",
"text": [
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
"/usr/lib64/python3.7/site-packages/numpy/core/fromnumeric.py:3118: RuntimeWarning: Mean of empty slice.\n",
" out=out, **kwargs)\n",
"/usr/lib64/python3.7/site-packages/numpy/core/_methods.py:85: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3334: RuntimeWarning: Mean of empty slice.\n",
" return _methods._mean(a, axis=axis, dtype=dtype,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:216: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:185: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean = um.true_divide(\n",
"/home/user/safety-reset/lab-windows/env/lib/python3.8/site-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars\n",
"/usr/lib64/python3.7/site-packages/numpy/core/_methods.py:140: RuntimeWarning: Degrees of freedom <= 0 for slice\n",
" keepdims=keepdims)\n",
"/usr/lib64/python3.7/site-packages/numpy/core/_methods.py:110: RuntimeWarning: invalid value encountered in true_divide\n",
" arrmean, rcount, out=arrmean, casting='unsafe', subok=False)\n",
"/usr/lib64/python3.7/site-packages/numpy/core/_methods.py:132: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n"
]
}
@ -892,7 +780,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
@ -901,21 +789,13 @@
},
{
"cell_type": "code",
"execution_count": 268,
"execution_count": 44,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-268-fd9510d5c128>:1: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).\n",
" fig, ((ax, cbar_ax), (intercept_ax, empty)) = plt.subplots(2, 2, figsize=(12, 9), gridspec_kw={'width_ratios': [1, 0.05], 'hspace': 0.4})\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "be4678ec02394b81b8aee83c759e1009",
"model_id": "62259928c3a24739a4b03c9b9a83859a",
"version_major": 2,
"version_minor": 0
},
@ -930,8 +810,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-268-fd9510d5c128>:17: RuntimeWarning: divide by zero encountered in log10\n",
" cm_func = lambda x: cmap(np.log10(x - min(decimations)) / (np.log10(max(decimations)) - np.log10(min(decimations))))\n"
"/usr/lib/python3.7/site-packages/ipykernel_launcher.py:20: RuntimeWarning: divide by zero encountered in log10\n"
]
}
],
@ -943,19 +822,24 @@
"results = []\n",
"\n",
"for fn in [\n",
" 'data/dsss_experiments_res-2020-02-20-14-10-13.json',\n",
" 'data/dsss_experiments_res-2020-02-20-13-21-57.json',\n",
" 'data/dsss_experiments_res-2020-02-20-13-23-47.json',\n",
"# 'data/dsss_experiments_res-2020-02-20-14-10-13.json',\n",
"# 'data/dsss_experiments_res-2020-02-20-13-21-57.json',\n",
"# 'data/dsss_experiments_res-2020-02-20-13-23-47.json',\n",
" 'data/dsss_experiments_res-2020-02-20-19-51-21.json',\n",
" 'data/dsss_experiments_res-2020-02-20-20-43-32.json',\n",
" 'data/dsss_experiments_res-2020-02-20-21-36-42.json',\n",
"]:\n",
" with open(fn, 'r') as f:\n",
" results += json.load(f)\n",
"\n",
"decimations = [decimation for (_nbits, thf, _reps, _points, _duration, decimation), series in results]\n",
"decimations = [decimation for (_nbits, thf, _reps, _points, _duration, decimation), series in results if decimation > 0]\n",
"cmap = matplotlib.cm.viridis\n",
"cm_func = lambda x: cmap(np.log10(x - min(decimations)) / (np.log10(max(decimations)) - np.log10(min(decimations))))\n",
"\n",
"decimation_sers = {}\n",
"for (nbits, thf, reps, points, duration, decimation), series in results:\n",
" if not decimation > 0:\n",
" continue\n",
" data = [ [ mean for mean, _std, _msg in reps if mean is not None ] for _amp, reps in series ]\n",
" amps = [ amp for amp, _reps in series ]\n",
" sers = np.array([ np.mean(values) for values in data ])\n",
@ -971,16 +855,18 @@
"ax.set_ylabel('Symbol error rate')\n",
"\n",
"norm = matplotlib.colors.Normalize(vmin=np.log10(min(decimations)), vmax=np.log10(max(decimations)))\n",
"yticks = [np.log10(d) for d in decimations]\n",
"tick_decs = sorted(decimations)\n",
"tick_decs = tick_decs[:4] + tick_decs[5::5]\n",
"yticks = [np.log10(d) for d in tick_decs]\n",
"cb1 = matplotlib.colorbar.ColorbarBase(cbar_ax, cmap=cmap, norm=norm, orientation='vertical', ticks=yticks)\n",
"cb1t = cbar_ax.twinx()\n",
"cb1t.set_ylim(cbar_ax.get_ylim())\n",
"cb1t.set_yticks(yticks)\n",
"\n",
"cbar_ax.set_yticklabels([f'{d/sampling_rate:.1f}' for d in decimations])\n",
"cbar_ax.set_yticklabels([f'{d/sampling_rate:.1f}' for d in tick_decs])\n",
"cbar_ax.set_ylabel(\"chip duration [s]\", labelpad=-70)\n",
"\n",
"cb1t.set_yticklabels([f'{d/sampling_rate * 2**nbits:.1f}' for d in decimations])\n",
"cb1t.set_yticklabels([f'{d/sampling_rate * 2**nbits:.1f}' for d in tick_decs])\n",
"cb1t.set_ylabel(\"symbol duration [s]\")\n",
"\n",
"\n",
@ -1044,7 +930,7 @@
},
{
"cell_type": "code",
"execution_count": 227,
"execution_count": 33,
"metadata": {},
"outputs": [
{
@ -1053,7 +939,7 @@
"41.6"
]
},
"execution_count": 227,
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
@ -1065,9 +951,9 @@
],
"metadata": {
"kernelspec": {
"display_name": "labenv",
"display_name": "winlabenv",
"language": "python",
"name": "labenv"
"name": "winlabenv"
},
"language_info": {
"codemirror_mode": {
@ -1079,7 +965,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.1"
"version": "3.7.6"
}
},
"nbformat": 4,