mirror of
https://github.com/K-Dense-AI/claude-scientific-skills.git
synced 2026-01-26 16:58:56 +08:00
12 KiB
12 KiB
Graphics and Visualization Reference
Table of Contents
2D Plotting
Line Plots
% Basic line plot
plot(y); % Plot y vs index
plot(x, y); % Plot y vs x
plot(x, y, 'r-'); % Red solid line
plot(x, y, 'b--o'); % Blue dashed with circles
% Line specification: [color][marker][linestyle]
% Colors: r g b c m y k w (red, green, blue, cyan, magenta, yellow, black, white)
% Markers: o + * . x s d ^ v > < p h
% Lines: - -- : -.
% Multiple datasets
plot(x1, y1, x2, y2, x3, y3);
plot(x, [y1; y2; y3]'); % Columns as separate lines
% With properties
plot(x, y, 'LineWidth', 2, 'Color', [0.5 0.5 0.5]);
plot(x, y, 'Marker', 'o', 'MarkerSize', 8, 'MarkerFaceColor', 'r');
% Get handle for later modification
h = plot(x, y);
h.LineWidth = 2;
h.Color = 'red';
Scatter Plots
scatter(x, y); % Basic scatter
scatter(x, y, sz); % With marker size
scatter(x, y, sz, c); % With color
scatter(x, y, sz, c, 'filled'); % Filled markers
% sz: scalar or vector (marker sizes)
% c: color spec, scalar, vector (colormap), or RGB matrix
% Properties
scatter(x, y, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'r');
Bar Charts
bar(y); % Vertical bars
bar(x, y); % At specified x positions
barh(y); % Horizontal bars
% Grouped and stacked
bar(Y); % Each column is a group
bar(Y, 'stacked'); % Stacked bars
% Properties
bar(y, 'FaceColor', 'b', 'EdgeColor', 'k', 'LineWidth', 1.5);
bar(y, 0.5); % Bar width (0 to 1)
Area Plots
area(y); % Filled area under curve
area(x, y);
area(Y); % Stacked areas
area(Y, 'FaceAlpha', 0.5); % Transparent
Histograms
histogram(x); % Automatic bins
histogram(x, nbins); % Number of bins
histogram(x, edges); % Specified edges
histogram(x, 'BinWidth', w); % Bin width
% Normalization
histogram(x, 'Normalization', 'probability');
histogram(x, 'Normalization', 'pdf');
histogram(x, 'Normalization', 'count'); % default
% 2D histogram
histogram2(x, y);
histogram2(x, y, 'DisplayStyle', 'tile');
histogram2(x, y, 'FaceColor', 'flat');
Error Bars
errorbar(x, y, err); % Symmetric error
errorbar(x, y, neg, pos); % Asymmetric error
errorbar(x, y, yneg, ypos, xneg, xpos); % X and Y errors
% Horizontal
errorbar(x, y, err, 'horizontal');
% With line style
errorbar(x, y, err, 'o-', 'LineWidth', 1.5);
Logarithmic Plots
semilogy(x, y); % Log y-axis
semilogx(x, y); % Log x-axis
loglog(x, y); % Both axes log
Polar Plots
polarplot(theta, rho); % Polar coordinates
polarplot(theta, rho, 'r-o'); % With line spec
% Customize polar axes
pax = polaraxes;
pax.ThetaDir = 'clockwise';
pax.ThetaZeroLocation = 'top';
3D Plotting
Line and Scatter
% 3D line plot
plot3(x, y, z);
plot3(x, y, z, 'r-', 'LineWidth', 2);
% 3D scatter
scatter3(x, y, z);
scatter3(x, y, z, sz, c, 'filled');
Surface Plots
% Create grid first
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.^2 + Y.^2;
% Surface plot
surf(X, Y, Z); % Surface with edges
surf(Z); % Use indices as X, Y
% Surface properties
surf(X, Y, Z, 'FaceColor', 'interp', 'EdgeColor', 'none');
surf(X, Y, Z, 'FaceAlpha', 0.5); % Transparent
% Mesh plot (wireframe)
mesh(X, Y, Z);
mesh(X, Y, Z, 'FaceColor', 'none');
% Surface with contour below
surfc(X, Y, Z);
meshc(X, Y, Z);
Contour Plots
contour(X, Y, Z); % 2D contour
contour(X, Y, Z, n); % n contour levels
contour(X, Y, Z, levels); % Specific levels
contourf(X, Y, Z); % Filled contours
[C, h] = contour(X, Y, Z);
clabel(C, h); % Add labels
% 3D contour
contour3(X, Y, Z);
Other 3D Plots
% Bar3
bar3(Z); % 3D bar chart
bar3(Z, 'stacked');
% Pie3
pie3(X); % 3D pie chart
% Waterfall
waterfall(X, Y, Z); % Like mesh with no back lines
% Ribbon
ribbon(Y); % 3D ribbon
% Stem3
stem3(x, y, z); % 3D stem plot
View and Lighting
% Set view angle
view(az, el); % Azimuth, elevation
view(2); % Top-down (2D view)
view(3); % Default 3D view
view([1 1 1]); % View from direction
% Lighting
light; % Add light source
light('Position', [1 0 1]);
lighting gouraud; % Smooth lighting
lighting flat; % Flat shading
lighting none; % No lighting
% Material properties
material shiny;
material dull;
material metal;
% Shading
shading flat; % One color per face
shading interp; % Interpolated colors
shading faceted; % With edges (default)
Specialized Plots
Statistical Plots
% Box plot
boxplot(data);
boxplot(data, groups); % Grouped
boxplot(data, 'Notch', 'on'); % With notches
% Violin plot (R2023b+)
violinplot(data);
% Heatmap
heatmap(data);
heatmap(xLabels, yLabels, data);
heatmap(T, 'XVariable', 'Col1', 'YVariable', 'Col2', 'ColorVariable', 'Val');
% Parallel coordinates
parallelplot(data);
Image Display
% Display image
imshow(img); % Auto-scaled
imshow(img, []); % Scale to full range
imshow(img, [low high]); % Specify display range
% Image as plot
image(C); % Direct indexed colors
imagesc(data); % Scaled colors
imagesc(data, [cmin cmax]); % Specify color limits
% Colormap for imagesc
imagesc(data);
colorbar;
colormap(jet);
Quiver and Stream
% Vector field
[X, Y] = meshgrid(-2:0.5:2);
U = -Y;
V = X;
quiver(X, Y, U, V); % 2D arrows
quiver3(X, Y, Z, U, V, W); % 3D arrows
% Streamlines
streamline(X, Y, U, V, startx, starty);
Pie and Donut
pie(X); % Pie chart
pie(X, explode); % Explode slices (logical)
pie(X, labels); % With labels
% Donut (using patch or workaround)
pie(X);
% Add white circle in center for donut effect
Figure Management
Creating Figures
figure; % New figure window
figure(n); % Figure with number n
fig = figure; % Get handle
fig = figure('Name', 'My Figure', 'Position', [100 100 800 600]);
% Figure properties
fig.Color = 'white';
fig.Units = 'pixels';
fig.Position = [left bottom width height];
Subplots
subplot(m, n, p); % m×n grid, position p
subplot(2, 2, 1); % Top-left of 2×2
% Spanning multiple positions
subplot(2, 2, [1 2]); % Top row
% With gap control
tiledlayout(2, 2); % Modern alternative
nexttile;
plot(x1, y1);
nexttile;
plot(x2, y2);
% Tile spanning
nexttile([1 2]); % Span 2 columns
Hold and Overlay
hold on; % Keep existing, add new plots
plot(x1, y1);
plot(x2, y2);
hold off; % Release
% Alternative
hold(ax, 'on');
hold(ax, 'off');
Multiple Axes
% Two y-axes
yyaxis left;
plot(x, y1);
ylabel('Left Y');
yyaxis right;
plot(x, y2);
ylabel('Right Y');
% Linked axes
ax1 = subplot(2,1,1); plot(x, y1);
ax2 = subplot(2,1,2); plot(x, y2);
linkaxes([ax1, ax2], 'x'); % Link x-axes
Current Objects
gcf; % Current figure handle
gca; % Current axes handle
gco; % Current object handle
% Set current
figure(fig);
axes(ax);
Customization
Labels and Title
title('My Title');
title('My Title', 'FontSize', 14, 'FontWeight', 'bold');
xlabel('X Label');
ylabel('Y Label');
zlabel('Z Label'); % For 3D
% With interpreter
title('$$\int_0^1 x^2 dx$$', 'Interpreter', 'latex');
xlabel('Time (s)', 'Interpreter', 'none');
Legend
legend('Series 1', 'Series 2');
legend({'Series 1', 'Series 2'});
legend('Location', 'best'); % Auto-place
legend('Location', 'northeast');
legend('Location', 'northeastoutside');
% With specific plots
h1 = plot(x1, y1);
h2 = plot(x2, y2);
legend([h1, h2], {'Data 1', 'Data 2'});
legend('off'); % Remove legend
legend('boxoff'); % Remove box
Axis Control
axis([xmin xmax ymin ymax]); % Set limits
axis([xmin xmax ymin ymax zmin zmax]); % 3D
xlim([xmin xmax]);
ylim([ymin ymax]);
zlim([zmin zmax]);
axis equal; % Equal aspect ratio
axis square; % Square axes
axis tight; % Fit to data
axis auto; % Automatic
axis off; % Hide axes
axis on; % Show axes
% Reverse direction
set(gca, 'YDir', 'reverse');
set(gca, 'XDir', 'reverse');
Grid and Box
grid on;
grid off;
grid minor; % Minor grid lines
box on; % Show box
box off; % Hide box
Ticks
xticks([0 1 2 3 4 5]);
yticks(0:0.5:3);
xticklabels({'A', 'B', 'C', 'D', 'E', 'F'});
yticklabels({'Low', 'Medium', 'High'});
xtickangle(45); % Rotate labels
ytickformat('%.2f'); % Format
xtickformat('usd'); % Currency
Colors and Colormaps
% Predefined colormaps
colormap(jet);
colormap(parula); % Default
colormap(hot);
colormap(cool);
colormap(gray);
colormap(bone);
colormap(hsv);
colormap(turbo);
colormap(viridis);
% Colorbar
colorbar;
colorbar('Location', 'eastoutside');
caxis([cmin cmax]); % Color limits
clim([cmin cmax]); % R2022a+ syntax
% Custom colormap
cmap = [1 0 0; 0 1 0; 0 0 1]; % Red, green, blue
colormap(cmap);
% Color order for lines
colororder(colors); % R2019b+
Text and Annotations
% Add text
text(x, y, 'Label');
text(x, y, z, 'Label'); % 3D
text(x, y, 'Label', 'FontSize', 12, 'Color', 'red');
text(x, y, 'Label', 'HorizontalAlignment', 'center');
% Annotations
annotation('arrow', [x1 x2], [y1 y2]);
annotation('textarrow', [x1 x2], [y1 y2], 'String', 'Peak');
annotation('ellipse', [x y w h]);
annotation('rectangle', [x y w h]);
annotation('line', [x1 x2], [y1 y2]);
% Text with LaTeX
text(x, y, '$$\alpha = \beta^2$$', 'Interpreter', 'latex');
Lines and Shapes
% Reference lines
xline(5); % Vertical line at x=5
yline(10); % Horizontal line at y=10
xline(5, '--r', 'Threshold'); % With label
% Shapes
rectangle('Position', [x y w h]);
rectangle('Position', [x y w h], 'Curvature', [0.2 0.2]); % Rounded
% Patches (filled polygons)
patch(xv, yv, 'blue');
patch(xv, yv, zv, 'blue'); % 3D
Exporting and Saving
Save Figure
saveas(gcf, 'figure.png');
saveas(gcf, 'figure.fig'); % MATLAB figure file
saveas(gcf, 'figure.pdf');
saveas(gcf, 'figure.eps');
Print Command
print('-dpng', 'figure.png');
print('-dpng', '-r300', 'figure.png'); % 300 DPI
print('-dpdf', 'figure.pdf');
print('-dsvg', 'figure.svg');
print('-deps', 'figure.eps');
print('-depsc', 'figure.eps'); % Color EPS
% Vector formats for publication
print('-dpdf', '-painters', 'figure.pdf');
print('-dsvg', '-painters', 'figure.svg');
Export Graphics (R2020a+)
exportgraphics(gcf, 'figure.png');
exportgraphics(gcf, 'figure.png', 'Resolution', 300);
exportgraphics(gcf, 'figure.pdf', 'ContentType', 'vector');
exportgraphics(gca, 'axes_only.png'); % Just the axes
% For presentations/documents
exportgraphics(gcf, 'figure.emf'); % Windows
exportgraphics(gcf, 'figure.eps'); % LaTeX
Copy to Clipboard
copygraphics(gcf); % Copy current figure
copygraphics(gca); % Copy current axes
copygraphics(gcf, 'ContentType', 'vector');
Paper Size (for Printing)
set(gcf, 'PaperUnits', 'inches');
set(gcf, 'PaperPosition', [0 0 6 4]);
set(gcf, 'PaperSize', [6 4]);
set(gcf, 'PaperPositionMode', 'auto');