필터 지우기
필터 지우기

How to change the scale of plot axes? How to plot circle using separate x and y equations?

조회 수: 4 (최근 30일)
Hi, I need to have this kind of result: (the scaling of the axes, and the graph of the 3rd and 6th subplots)
Here is my code:
for k = 1:6
ax(k) = subplot(3,3,k);
end
subplot(ax(1))
fplot(@(x) cos(x))
xlabel('x')
ylabel('y')
title('cos(x)')
axis([-5 5 -1 1])
subplot(ax(2))
fplot(@(x) cos(x))
xlabel('x')
ylabel('y')
title('cos(x)')
axis([0 2 -1 1])
subplot(ax(3))
fimplicit(@(x,y) (1/y)-(log(y))+(log(-1+y))+x-1)
xlabel('x')
ylabel('y')
title('1/y-log(y)+log(-1+y)+x-1=0')
axis([-5 5 -5 5])
subplot(ax(4))
fimplicit(@(x,y) x^2+y^2-4)
xlabel('x')
ylabel('y')
title('x^2+y^2-4=0')
axis([-5 5 -5 5])
%Plot for x^3+y^3-5xy+1/5=0
subplot(ax(5))
fimplicit(@(x,y) x^3+y^3-(5*x*y)+(1/5))
xlabel('x')
ylabel('y')
title('x^3+y^3-5xy+1/5=0')
axis([-2 2 -3 3])
t = -5:5;
x = sin(t);
y = cos(t);
subplot(ax(6))
plot(x,y)
xlabel('x')
ylabel('y')
title('x = sin(t),y = cos(t)')
axis([-0.5 0.5 -1 1])
This is the result I get using my code:
Thank you in advance!

채택된 답변

Cris LaPierre
Cris LaPierre 2020년 7월 23일
Try adding 'axis equal'. You can see additional options here.
You already have the equations for getting X and Y of a circle. The problem is your resolution. Too few points, and your circle might look like an octogon, or a square. The circle will look smoother the smaller the step between each point is. Adjust this by modifying t. For example
t = -5:0.5:5
See here for more. Change the value in the middle until you get the output you like.
  댓글 수: 5
Cris LaPierre
Cris LaPierre 2020년 7월 24일
Axis equal makes the scale the same in x and y. This is not applicable for every single subplot. For example, the top left has a range in Y of 2, but a range of 10 in X.
Also note that this is a 2x3 suplot grid, not 3x3.
Fix the warnings you get in the code by using elementwise operators in your equations.
Note that, at least for the trig functions, it's most likely the limits are some multiple of pi.
This is clearly an exercise to get you to explore various axis properties - limits, modes, etc. You do not do the same thing in every plot.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Arthur Roué
Arthur Roué 2020년 7월 23일
A call to
axis equal
After creating your plot will set the same length for the data units along each axis.
  댓글 수: 2
Roxanne Esguerra
Roxanne Esguerra 2020년 7월 24일
I tried adding that to each subplot and it still didn't result to the required scaling of the axes.
Is it possible to have increments in the axis limits?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Subplots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by