13 views (last 30 days)

I have 2 imported columns from excel (time and value), that contain more than 10000 rows, I plotted them and also the average of the whole values.

Now I want to plot both the time on the x axis and the values on the y axis with the average line (see second code) in one figure, I get the following error:

Values plotted against x-axis must be categorical values. To create categorical values, use the categorical function.

when I convert the value to a categorical one, it says: " Invalid data type. First argument must be numeric or logical."

Can Anyone tell me where the problem can be?

%the first correct code:

nexttile

plot(time,value)

nexttile

plot([0 size(value,1)],[avg avg], 'y-', 'LineWidth',2);

%The second one where I get the error:

nexttile

hold on

plot(time,value)

plot( [0 size(value,1)],[avg avg], 'y-', 'LineWidth',2);

hold off

Shae Morgan
on 13 Aug 2020

Try this out: Since I didn't have your variable class, I had to assume you're dealing with time-stamps here. This works for those:

t1 = datetime(2020,8,12,13,11,24); %start time

t2 = datetime(2020,8,12,13,18,36); %end time

time5 = t1:seconds:t2; %create a vector of time points from the start time to the end time

v5 = randn(size(time5)); %create random y-axis data

plot(time5,v5) %plot data

hold on; %hold the current figure so the first plot doesn't erase when you do the 2nd plot

avg5 = mean(v5); %the average value of v5

x2= [time5(1) time5(end)]; %x-values for the average line

plot(x2,[avg5 avg5], 'y-', 'LineWidth',2); %plot the avg line

title('value 5 by time plot') %title the plot

legend('Raw data','Average line') %add a legend to differentiate the two data sources

ax = gca; %get current axis

x_step_size=100; %step size between labels in seconds

ax.XAxis.TickValues = t1:seconds(x_step_size):t2; %adjust the tick values to the correct spacing

Opportunities for recent engineering grads.

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

Start Hunting!
## 2 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/578047-problem-while-plotting-twice-in-a-figure#comment_968155

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/578047-problem-while-plotting-twice-in-a-figure#comment_968155

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/578047-problem-while-plotting-twice-in-a-figure#comment_968173

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/578047-problem-while-plotting-twice-in-a-figure#comment_968173

Sign in to comment.