Changing colour of regression line in a scatter plot

8 ビュー (過去 30 日間)
Danny
Danny 2023 年 12 月 27 日
編集済み: Dyuman Joshi 2023 年 12 月 27 日
I am trying to either change the colour of the line in my scatter graph linear regression graph or the colour of the plots to make it easier to read
This is my current code to try and change the line colour to blue except both the line and points stay in red each time?
plot(x, y, 'rx', 'MarkerSize', 2, "MarkerFaceColor","b");
ylabel('Crash Risk');
xlabel('Ln Market Value');
title('How Ln Market Value affects Crash Risk')
  6 件のコメント
Star Strider
Star Strider 2023 年 12 月 27 日
Missing function definitions.
%% Initialization
clear all; close all; clc
%% ======================= Part 1: Plotting =======================
fprintf('Plotting Data ...\n')
Plotting Data ...
data = load('LnMarketVal.txt');
X = data(:, 1); y = data(:, 2);
m = length(y); % number of training examples
% Plot Data
% Note: You have to complete the code in plotData.m
plotData(X, y);
Unrecognized function or variable 'plotData'.
% fprintf('Program paused. Press enter to continue.\n');
% pause;
%% =================== Part 2: Gradient descent ===================
fprintf('Running Gradient Descent ...\n')
X = [ones(m, 1), data(:,1)]; % Add a column of ones to x
theta = zeros(2, 1); % initialize fitting parameters
% Some gradient descent settings
iterations = 1500;
alpha = 0.01;
% compute and display initial cost
computeCost(X, y, theta)
% run gradient descent
theta = gradientDescent(X, y, theta, alpha, iterations);
% print theta to screen
fprintf('Theta found by gradient descent: ');
fprintf('%f %f \n', theta(1), theta(2));
% Plot the linear fit
hold on; % keep previous plot visible
plot(X(:,2), X*theta, '-')
legend('Training data', 'Linear regression')
hold off % don't overlay any more plots on this figure
% Predict values for population sizes of 35,000 and 70,000
predict1 = [1, 3.5] *theta;
fprintf('Program paused. Press enter to continue.\n');
pause;
%% ============= Part 3: Visualizing J(theta_0, theta_1) =============
fprintf('Visualizing J(theta_0, theta_1) ...\n')
% Grid over which we will calculate J
theta0_vals = linspace(-10, 10, 100);
theta1_vals = linspace(-1, 4, 100);
% initialize J_vals to a matrix of 0's
J_vals = zeros(length(theta0_vals), length(theta1_vals));
% Fill out J_vals
for i = 1:length(theta0_vals)
for j = 1:length(theta1_vals)
t = [theta0_vals(i); theta1_vals(j)];
J_vals(i,j) = computeCost(X, y, t);
end
end
J_vals = J_vals';
% Surface plot
figure;
surf(theta0_vals, theta1_vals, J_vals)
xlabel('\theta_0'); ylabel('\theta_1');
% Contour plot
figure;
% Plot J_vals as 15 contours spaced logarithmically between 0.01 and 100
contour(theta0_vals, theta1_vals, J_vals, logspace(-2, 3, 20))
xlabel('\theta_0'); ylabel('\theta_1');
hold on;
plot(theta(1), theta(2), 'rx', 'MarkerSize', 10, 'LineWidth', 2);
.
Dyuman Joshi
Dyuman Joshi 2023 年 12 月 27 日
編集済み: Dyuman Joshi 2023 年 12 月 27 日
@Danny, Please supply the functions used/called in the script as well.

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2023 年 12 月 27 日
Using the lsline function to draw the linear regression —
x = (0:99);
y = 3*x + randn(size(x))*25 + 15;
figure
plot(x, y, 'rx', 'MarkerSize', 2, "MarkerFaceColor","b");
ylabel('Crash Risk');
xlabel('Ln Market Value');
title('How Ln Market Value affects Crash Risk')
lr = lsline;
lr.Color = 'b'; % Change Colour To Blue
B = [lr.XData; 1 1].' \ lr.YData.'; % Parameters
m = B(1) % Slope
m = 3.0109
b = B(2) % Inmtercept
b = 15.3244
The only argumnent lsline takes is the axis it refers to, so all modifications are made to it after it is plotted.
.
  1 件のコメント
Image Analyst
Image Analyst 2023 年 12 月 27 日
How does lsline know what the data is? What if there are lots of things plotted? Or does it require only 1 set of x data and 1 set of y data?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by