Seminář 6 KMI/PVM Programování v MATLABu

Kreslení grafů a vizualizace dat

Základní grafy

Základem je funkce plot umožňující vykreslení grafu. Základní syntaxe plot(x, y, s), kde x představuje data pro osu x, y představuje data pro osu y a s parametry ve tvaru klíč hodnota. Více help plot. Příklad použití:

x = [-10:10];
y = x.^2;
plot(x,y); % vychozi graf
plot(x,y, '--vr'); % cerveny graf, trojuhelniky, carkovana cara
plot(x, y, '-d', 'LineWidth', 2, 'MarkerFaceColor', 'red', 'MarkerSize', 10); % diamaty vybarvene cervene, uprava velikosti

Přehled vlastností. Grafy jsou automaticky kresleny do prostředí figure (samostatné okno se specifickými ovládacími prvky). Volání funkce plot automaticky způsobí refresh tohoto prostředí. Pro nakreslení více grafu do jednoho je zapotřebí zavolat:

figure
hold on
x = [-10:10];
y1 = x.^2;
y2 = x.^2.5;

plot(x, y1);
plot(x, y2, 'r');
hold off

Všimněte si, že graf je kreslen postupně. Například příkaz figure způsobí otevření prázdného okna. Pokud bychom chtěli více oken, stačí opakovaně volat tuto funkci. Funkce hold zabrání automatickému překreslení aktuálního figure prostředí. Pro vykreslení více grafů (oken) v rámci jediného okna lze využít funkci subplot

figure
subplot(1,2,1)
x = [-10:10];
y1 = x.^2;
y2 = x.^2.5;
plot(x, y1);
subplot(1,2,2)
plot(x, y2, 'r');

Subploty jsou indexovány zpostupně po řádcích. Pro jejich zpřístupnění lze využít operátory [] a :. figure je veskutečnosti funkce, které vrací handler okna, a akceptuje parametr pro případnou identifikaci tohoto okna. K již vykresleným objektů je možné přistoupit (gcf, gca, gco, findobj) a změnit jejich vlastnosti.

Nastavení parametrů

title, xlabel, ylabel, zlabel, text, legend, axis, grid, box. Prohlédněte si nápovědu k jednotlivým příkazům. Grafy lze upravovat interaktivně.

figure
x = [-10:10];
y1 = x.^2;
plot(x, y1);
text(6.4,35, 'x^2');
axis([-8, 8, 0, 90]);
title('Graf');
legend('cara')
grid on;

Prostorové kreslení

plot3, mesh, meshgrid, surf, contour3
x = [-1:0.1:1];
y = [-1:0.1:1];

[X,Y] = meshgrid(x,y);
Z = X.^2+Y.^2;
mesh(X, Y, Z);
figure
surf(X, Y, Z); % shading [faceted | flat | interp]
figure
contour3(X, Y, Z, 100);

Sloupcové a další grafy

bar, barh, bar3, bar3h, area, pie, pie3, scatter.

U sloupcových grafů lze nastavit grouped, detached, stacked. Koláčový graf počítá zastoupení jednotlivých položek a dělí je celkovým součtem.

pie3([10, 20, 70], [1,0,0], {'10%', '20%', 'zbytek'});

Histogramy

hist, histc, rose. Vnitřně po provedení výpočtu volá bar.

Další

stem, stem3, stairs stopkový a schodový graf pro diskrétní data. feather, quiver, quiver3 vektory a vektorová pole. convhul, triplot konvexní obal a triangulace dat. fill, fill3 kreslení mnohoúhelníků.

Doporučená literatura na dnešní seminář

Úkoly

  1. Prohlédněte si řešení příkladu z minula.

  2. Importujte count dataset (load count.dat), který představuje měření počtu vozidel na třech místech během 24 hodin. Vytvořte pomocí funkce subplot čtyři grafy (lineární, sloupcový, 3D sloupcový a histogram četností rozdělený na 5 intervalů). U lineárního grafu přidejte křivku pro průměrovanou hodnotu.

  3. Vytvořte následující graf (data jsou stejná jako v předešlém úkolu). Vyřešte úkol bez vlastnosti MarkerIndices

© Martin Trnečka