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']
|
||||
|
||||
MCFG = {
|
||||
'OFDMA': ('#546E7A', 's--', 1.5, 'OFDMA'),
|
||||
'OFDMA': ('#546E7A', 's--', 1.5, 'OMA'),
|
||||
'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)
|
||||
@@ -425,7 +425,7 @@ def _overlay_trained(ax, scenario_key: str):
|
||||
return
|
||||
snr = tr['snr_db']
|
||||
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):
|
||||
@@ -524,7 +524,7 @@ for sl, col, lbl in _groups:
|
||||
'o-', lw=1.8, color=col, label=f'{lbl} — UWCA')
|
||||
# OFDMA: β-independent → single curve averaged over all users
|
||||
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
|
||||
ax3.semilogy(SNR_DB, res['NOMA-SIC']['sp'].mean(axis=1),
|
||||
'^-', 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
|
||||
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[2], lw=2.2, ls='-', label='UWCA ($U=2$)'),
|
||||
_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 = [
|
||||
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}')
|
||||
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')
|
||||
|
||||
_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=_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)
|
||||
_handles = [
|
||||
_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='-',
|
||||
marker=_UWCA_MKRS12[1], ms=4, label='UWCA ($U=1$)'),
|
||||
_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.
|
||||
|
||||
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 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
|
||||
@@ -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]['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]['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.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)
|
||||
|
||||
@@ -176,7 +176,7 @@ USER_COLORS = ['#1565C0', '#2E7D32', '#C62828', '#6A1B9A']
|
||||
# Method display config: color / marker+linestyle / linewidth / legend label
|
||||
MCFG = {
|
||||
'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