function plotPointsOverContour(points, contour_fun, x_lim, y_lim, size, plot_title, filename) % 3D plots a function % points: The points to plot % contur_fun: The function for contour plot % x_lim: The range for x axis. ex: [-2, 2] % y_lim: The range for y axis. ex: [0, 2] % size: The number of points for each axis % plot_title: The latex title for the plot % filename: The filename to save the plot (if exists) % % Generate a grid for x and y x_space = linspace(x_lim(1), x_lim(2), size); y_space = linspace(y_lim(1), y_lim(2), size); [X, Y] = meshgrid(x_space, y_space); % Evaluate the function on the grid Z = contour_fun(X, Y); % 2D plot figure('Name', '(x,y)', 'NumberTitle', 'off'); set(gcf, 'Position', [100, 100, 960, 960]); % Set the figure size plot(points(:, 1), points(:, 2), '-or'); hold on contour(X, Y, Z); % Customize the plot xlim(x_lim); ylim(y_lim); xlabel('x'); % Label for x-axis ylabel('y'); % Label for y-axis grid on title(plot_title, 'Interpreter', 'latex', 'FontSize', 16); % Title of the plot colorbar; % save the figure if strcmp(filename, '') == 0 print(gcf, filename, '-dpng', '-r300'); end end