Adding tick marks without overriding existing marks

13 views (last 30 days)
I would like to add a tick mark to a semilogx() plot to indicate the -3dB point of my transfer function. I know that I can use (gca,'XTick',[ ... ]) to add tick marks at specific frequencies; however, this forces the plot to ONLY display my specified tickmarks and completely removes the existing grid. is there anyway to add a tick mark overlay that maintains the standard semilog grid?
Note: the professor for this class had figures in his notes that do what I would like to do, but he has a pretty strict no-contact policy during take-home-exam weekends.

Accepted Answer

Stephen23
Stephen23 on 3 Dec 2016
Play around with this:
>> x = 5.7;
>> yV = get(gca,'ylim');
>> text(x,yV(1),num2str(x),'VerticalAlignment','top','HorizontalAlignment','center')
>> line([x,x],yV)

More Answers (1)

Walter Roberson
Walter Roberson on 3 Dec 2016
current_ticks = get(gca, 'XTick')
new_ticks = [current_ticks, specific_frequencies];
set(gca, 'XTick', new_ticks);
Or you can line() at the appropriate location, passing in 'Clipping', 'off') if you want the tick line to be visible outside the drawing area.
  2 Comments
Andrew Jones
Andrew Jones on 3 Dec 2016
Edited: Andrew Jones on 3 Dec 2016
Not quite what I'm looking for. Additionally, this only works if the specific_frequencies are greater than every element of current_ticks. I tried line(), but apparently I don't have a firm enough understanding of that particular function.
I've attached a picture of what I am wanting to achieve. The plot has a user-defined tick at 5.7 degrees, but all of the dotted grey lines from the semilogx grid are still present. I have tried manually ticking for each of the standard semilog ticks, but then they all come out solid instead of dotted and it's harder to find the frequency I actually want to draw attention to.
Walter Roberson
Walter Roberson on 3 Dec 2016
If it complains about the order then sort() new_ticks

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!