Code Execution & Rendering Issues in Exercise 8.3 Subplots – Chapter 8.3 (Pages 253–254)

Aperta
#231 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Ambito
content

Direzione di ricerca

Start with _graphuniv.m and compare its subplot layout and bar3 panel with the Exercise 8.3 code and the attached rendering. Check the figure output for label overlap and readability across all eight panels. Done means the rendering issues described in the report are resolved while preserving the exercise’s intended plots.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Dear Professors,

Following up on the layout issue, I performed a full code execution test in MATLAB using the exact snippet provided for Exercise 8.3 on pages 253–254:

  • #230
T = readtable("graphuniv2series.xlsx", 'Sheet', 'data', 'ReadRowNames', true);
Y = T{:, 1:2};
months = categorical(T.Properties.RowNames, T.Properties.RowNames);
nr = 2; nc = 4;
subplot(nr, nc, 1); bar(months, Y); title('Grouped vertical bars')
% ... subplots 2 to 7 ...
subplot(nr, nc, 6); bar3(months, Y); title('3D bars')

Upon running the code, I observed a couple of notable rendering discrepancies and formatting issues in the resulting figure:

  1. Subplot Overlap & Label Clipping:
    Arranging 8 subplots in a $2 \times 4$ grid (nr = 2, nc = 4) without adjusting spacing causes the rotated vertical x-axis labels of the top row (e.g., Jan, Feb... Dec) to overlap directly with the titles of the subplots on the bottom row (such as 100% stacked area).

  2. 3D Bar Display (bar3) with Categorical Input:
    While bar3(months, Y) executes without syntax errors in recent MATLAB releases, passing a categorical array directly to bar3 places all 12 month labels along the 3D depth axis in a skewed orientation. Depending on the window resolution, this makes the labels hard to read and visually inconsistent with the rest of the 2D panels.

Suggested Refinements:

  • Using tiledlayout(2, 4, 'Padding', 'compact') instead of subplot(nr, nc, i) automatically resolves the label-title overlaps.
  • For bar3, explicitly formatting the tick labels or providing a dedicated viewing angle (e.g., via view()) improves the readability of the 3D bar chart.

Also, this is all the code i rewritten along the original file in the repo : graphuniv.m

% 1. Read data from Excel file
T = readtable("graphuniv2series.xlsx", 'Sheet', 'data', 'ReadRowNames', true);
Y = T{:, 1:2};

% 2. Define categorical month labels preserving chronological order
months = categorical(T.Properties.RowNames, T.Properties.RowNames, 'Ordinal', true);

% 3. Set subplot layout dimensions
nr = 2; 
nc = 4;

% Panel 1: Grouped vertical bars
subplot(nr, nc, 1)
bar(months, Y)
title('Grouped vertical bars')

% Panel 2: Grouped horizontal bars
subplot(nr, nc, 2)
barh(months, Y)
title('Grouped horizontal bars')

% Panel 3: Stacked bars
subplot(nr, nc, 3)
bar(months, Y, 'stacked')
title('Stacked bars')

% Panel 4: 100% stacked bars
subplot(nr, nc, 4)
bar(months, 100 * Y ./ sum(Y, 2), 'stacked')
title('100% stacked bars')

% Panel 5: 100% stacked area
subplot(nr, nc, 5)
area(months, 100 * Y ./ sum(Y, 2))
title('100% stacked area')

% Panel 6: 3D bars (Fix for categorical array compatibility)
subplot(nr, nc, 6)
bar3(Y)
set(gca, 'XTickLabel', string(months))
title('3D bars')

% Panel 7: Stairs plot
subplot(nr, nc, 7)
stairs(months, Y)
title('Stairs plot')

% Panel 8: Custom-coloured bars (Example customization)
subplot(nr, nc, 8)
b = bar(months, Y);
b(1).FaceColor = [0.2 0.6 0.8];
b(2).FaceColor = [0.8 0.3 0.3];
title('Custom-coloured bars')

With those different results:

Image
Lingua principale
MATLAB
Stelle
30
Fork
1
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di UniprJRC/DSwithMATLAB

Tutte le issue di UniprJRC/DSwithMATLAB

Issue simili

Altre issue su MATLAB

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.