Round-2 audit: UWCA (genie) label, legend dictionary ported into legacy plot scripts
This commit is contained in:
Binary file not shown.
@@ -96,9 +96,9 @@ SCENARIOS = {
|
|||||||
USER_COLORS = ['#1565C0', '#2E7D32', '#C62828', '#6A1B9A']
|
USER_COLORS = ['#1565C0', '#2E7D32', '#C62828', '#6A1B9A']
|
||||||
|
|
||||||
MCFG = {
|
MCFG = {
|
||||||
'OFDMA': ('#546E7A', 's--', 1.5, 'OFDMA'),
|
'OFDMA': ('#546E7A', 's--', 1.5, 'OMA'),
|
||||||
'NOMA-SIC': ('#E65100', '^-', 1.5, 'NOMA'),
|
'NOMA-SIC': ('#E65100', '^-', 1.5, 'NOMA'),
|
||||||
'MAML+Attn': ('#1565C0', 'o-', 2.4, 'UWCA (proposed)'),
|
'MAML+Attn': ('#1565C0', 'o-', 2.4, 'UWCA (trained)'),
|
||||||
}
|
}
|
||||||
|
|
||||||
CMAP_RHO = LinearSegmentedColormap.from_list('rho', ['#1565C0', '#FFFFFF', '#C62828'], N=256)
|
CMAP_RHO = LinearSegmentedColormap.from_list('rho', ['#1565C0', '#FFFFFF', '#C62828'], N=256)
|
||||||
@@ -425,7 +425,7 @@ def _overlay_trained(ax, scenario_key: str):
|
|||||||
return
|
return
|
||||||
snr = tr['snr_db']
|
snr = tr['snr_db']
|
||||||
ax.semilogy(snr, tr['maml_ser'], 'o', ms=7, mfc='none', mec='#1565C0',
|
ax.semilogy(snr, tr['maml_ser'], 'o', ms=7, mfc='none', mec='#1565C0',
|
||||||
mew=1.8, label='UWCA (Trained)', zorder=5)
|
mew=1.8, label='UWCA (trained)', zorder=5)
|
||||||
|
|
||||||
|
|
||||||
def _snr_at_ser(ser_arr, snr_arr, target=0.30):
|
def _snr_at_ser(ser_arr, snr_arr, target=0.30):
|
||||||
@@ -524,7 +524,7 @@ for sl, col, lbl in _groups:
|
|||||||
'o-', lw=1.8, color=col, label=f'{lbl} — UWCA')
|
'o-', lw=1.8, color=col, label=f'{lbl} — UWCA')
|
||||||
# OFDMA: β-independent → single curve averaged over all users
|
# OFDMA: β-independent → single curve averaged over all users
|
||||||
ax3.semilogy(SNR_DB, res['OFDMA']['sp'].mean(axis=1),
|
ax3.semilogy(SNR_DB, res['OFDMA']['sp'].mean(axis=1),
|
||||||
's--', lw=1.2, color='#546E7A', label='OFDMA (reference)')
|
's--', lw=1.2, color='#546E7A', label='OMA')
|
||||||
# NOMA: power-allocation-dependent → single curve averaged over all users
|
# NOMA: power-allocation-dependent → single curve averaged over all users
|
||||||
ax3.semilogy(SNR_DB, res['NOMA-SIC']['sp'].mean(axis=1),
|
ax3.semilogy(SNR_DB, res['NOMA-SIC']['sp'].mean(axis=1),
|
||||||
'^-', lw=1.2, color='#E65100', label='NOMA (reference)')
|
'^-', lw=1.2, color='#E65100', label='NOMA (reference)')
|
||||||
@@ -687,7 +687,7 @@ for U_val in _U_LIST_9:
|
|||||||
|
|
||||||
# Unified legend: OFDMA + UWCA-SE per U value
|
# Unified legend: OFDMA + UWCA-SE per U value
|
||||||
legend_handles = [
|
legend_handles = [
|
||||||
_L2D([0],[0], color='#546E7A', lw=1.6, ls='--', alpha=0.75, label='OFDMA (Analytical)'),
|
_L2D([0],[0], color='#546E7A', lw=1.6, ls='--', alpha=0.75, label='OMA'),
|
||||||
_L2D([0],[0], color=_U_COLORS[1], lw=2.2, ls='-', label='UWCA ($U=1$)'),
|
_L2D([0],[0], color=_U_COLORS[1], lw=2.2, ls='-', label='UWCA ($U=1$)'),
|
||||||
_L2D([0],[0], color=_U_COLORS[2], lw=2.2, ls='-', label='UWCA ($U=2$)'),
|
_L2D([0],[0], color=_U_COLORS[2], lw=2.2, ls='-', label='UWCA ($U=2$)'),
|
||||||
_L2D([0],[0], color=_U_COLORS[4], lw=2.2, ls='-', label='UWCA ($U=4$)'),
|
_L2D([0],[0], color=_U_COLORS[4], lw=2.2, ls='-', label='UWCA ($U=4$)'),
|
||||||
@@ -726,7 +726,7 @@ for U_val in MI_U_LIST:
|
|||||||
|
|
||||||
_style_handles = [
|
_style_handles = [
|
||||||
Line2D([0], [0], color='k', lw=2.2, ls='-', label='UWCA (Analytical)'),
|
Line2D([0], [0], color='k', lw=2.2, ls='-', label='UWCA (Analytical)'),
|
||||||
Line2D([0], [0], color='k', lw=1.6, ls='--', alpha=0.6, label='OFDMA (Analytical)'),
|
Line2D([0], [0], color='k', lw=1.6, ls='--', alpha=0.6, label='OMA'),
|
||||||
]
|
]
|
||||||
_color_handles = [Line2D([0],[0], color=_U_COLORS[u], lw=2.2, label=f'U={u}')
|
_color_handles = [Line2D([0],[0], color=_U_COLORS[u], lw=2.2, label=f'U={u}')
|
||||||
for u in MI_U_LIST]
|
for u in MI_U_LIST]
|
||||||
@@ -848,7 +848,7 @@ ax11a.axhline(TAU_FAIR, color='gray', lw=0.8, ls=':', alpha=0.6)
|
|||||||
ax11a.text(0.5, TAU_FAIR * 1.07, f'$\\tau={TAU_FAIR}$', fontsize=8, color='gray')
|
ax11a.text(0.5, TAU_FAIR * 1.07, f'$\\tau={TAU_FAIR}$', fontsize=8, color='gray')
|
||||||
|
|
||||||
_lh_fair = [
|
_lh_fair = [
|
||||||
_L2D([0],[0], color='k', lw=1.5, ls='--', alpha=0.6, label='OFDMA (Analytical)'),
|
_L2D([0],[0], color='k', lw=1.5, ls='--', alpha=0.6, label='OMA'),
|
||||||
_L2D([0],[0], color='k', lw=2.2, ls='-', label='UWCA (Analytical)'),
|
_L2D([0],[0], color='k', lw=2.2, ls='-', label='UWCA (Analytical)'),
|
||||||
] + [
|
] + [
|
||||||
_L2D([0],[0], color=_U_COLORS[u], lw=2.2, label=f'$U={u}$') for u in _U_LIST_F
|
_L2D([0],[0], color=_U_COLORS[u], lw=2.2, label=f'$U={u}$') for u in _U_LIST_F
|
||||||
@@ -937,7 +937,7 @@ def _draw_panel12(ax, u_results, beta_label, panel_tag):
|
|||||||
ax.grid(True, alpha=0.3); ax.set_xlim(0, 20)
|
ax.grid(True, alpha=0.3); ax.set_xlim(0, 20)
|
||||||
_handles = [
|
_handles = [
|
||||||
_L2D([0],[0], color=_OFDMA_CLR12, lw=2.2, ls='-',
|
_L2D([0],[0], color=_OFDMA_CLR12, lw=2.2, ls='-',
|
||||||
label='OFDMA'),
|
label='OMA'),
|
||||||
_L2D([0],[0], color=_UWCA_CLRS12[1], lw=1.5, ls='-',
|
_L2D([0],[0], color=_UWCA_CLRS12[1], lw=1.5, ls='-',
|
||||||
marker=_UWCA_MKRS12[1], ms=4, label='UWCA ($U=1$)'),
|
marker=_UWCA_MKRS12[1], ms=4, label='UWCA ($U=1$)'),
|
||||||
_L2D([0],[0], color=_UWCA_CLRS12[2], lw=1.5, ls='-',
|
_L2D([0],[0], color=_UWCA_CLRS12[2], lw=1.5, ls='-',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
for HIGH/LOW/MIX, parallel to the synthetic Fig. 2.
|
for HIGH/LOW/MIX, parallel to the synthetic Fig. 2.
|
||||||
|
|
||||||
Curves per panel:
|
Curves per panel:
|
||||||
- OMA, SFDMA, NOMA-SIC (analytical baselines)
|
- OFDMA [division], SFDMA [feature div.], NOMA-SIC (analytical baselines)
|
||||||
- UWCA (analytical) : oracle-beta cross-attention (relevance SUPPLIED) -- dotted
|
- UWCA (analytical) : oracle-beta cross-attention (relevance SUPPLIED) -- dotted
|
||||||
- UWCA w/o MAML : decoder TRAINED on real digits, no meta-learning (from realdata_train.json)
|
- UWCA w/o MAML : decoder TRAINED on real digits, no meta-learning (from realdata_train.json)
|
||||||
- UWCA w/ MAML : decoder TRAINED on real digits with MAML (proposed) -- hollow circles
|
- UWCA w/ MAML : decoder TRAINED on real digits with MAML (proposed) -- hollow circles
|
||||||
@@ -107,7 +107,7 @@ for j, s in enumerate(['HIGH', 'LOW', 'MIX']):
|
|||||||
a.plot(SNR, ana[s]['OFDMA'], 's--', color=COL['OFDMA'], lw=2, ms=5, label='OMA')
|
a.plot(SNR, ana[s]['OFDMA'], 's--', color=COL['OFDMA'], lw=2, ms=5, label='OMA')
|
||||||
a.plot(SNR, ana[s]['SFDMA'], 'v:', color=COL['SFDMA'], lw=2, ms=5, mfc='none', label='SFDMA')
|
a.plot(SNR, ana[s]['SFDMA'], 'v:', color=COL['SFDMA'], lw=2, ms=5, mfc='none', label='SFDMA')
|
||||||
a.plot(SNR, ana[s]['NOMA-SIC'], '^-.', color=COL['NOMA-SIC'], lw=2, ms=5, label='NOMA-SIC')
|
a.plot(SNR, ana[s]['NOMA-SIC'], '^-.', color=COL['NOMA-SIC'], lw=2, ms=5, label='NOMA-SIC')
|
||||||
a.plot(SNR, ana[s]['UWCA (analytical)'], ':', color=COL['UWCA (analytical)'], lw=2.4, label='UWCA (oracle)')
|
a.plot(SNR, ana[s]['UWCA (analytical)'], ':', color=COL['UWCA (analytical)'], lw=2.4, label='UWCA (genie)')
|
||||||
a.plot(SNR, trained[s]['UWCA w/ MAML'], 'o-', color=COL['UWCA w/ MAML'], lw=1.6, ms=6, mfc='none', mew=1.6, label='UWCA (trained)')
|
a.plot(SNR, trained[s]['UWCA w/ MAML'], 'o-', color=COL['UWCA w/ MAML'], lw=1.6, ms=6, mfc='none', mew=1.6, label='UWCA (trained)')
|
||||||
a.set_ylim(0.1, 1.02); a.set_xlim(0, 20); a.grid(alpha=.3); a.set_box_aspect(0.85)
|
a.set_ylim(0.1, 1.02); a.set_xlim(0, 20); a.grid(alpha=.3); a.set_box_aspect(0.85)
|
||||||
a.set_xlabel('SNR (dB)', fontsize=10)
|
a.set_xlabel('SNR (dB)', fontsize=10)
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ USER_COLORS = ['#1565C0', '#2E7D32', '#C62828', '#6A1B9A']
|
|||||||
# Method display config: color / marker+linestyle / linewidth / legend label
|
# Method display config: color / marker+linestyle / linewidth / legend label
|
||||||
MCFG = {
|
MCFG = {
|
||||||
'OFDMA': ('#546E7A', 's--', 1.5, 'OFDMA (Analytical)'),
|
'OFDMA': ('#546E7A', 's--', 1.5, 'OFDMA (Analytical)'),
|
||||||
'MAML+Attn': ('#1565C0', 'o-', 2.4, 'UWCA-SE (Analytical)'),
|
'MAML+Attn': ('#1565C0', 'o-', 2.4, 'UWCA (analytical)'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user