Eliminating an entire point on a plot both for data and on the axis

1 回表示 (過去 30 日間)
Krispy Scripts
Krispy Scripts 2017 年 5 月 5 日
回答済み: dpb 2017 年 5 月 6 日
I have a graph of power spectrum data. As is the case with notch filters, there is a dip at 60Hz for the filter. I am wondering if when I plot it, there is a way to completely excise out 60 on the X-axis so that both data and X-Axis omit 60?
  2 件のコメント
dpb
dpb 2017 年 5 月 5 日
What, specifically do you mean here by "omit"? Not show the data for some range about 60 Hz or to somehow truncate some range of the axis entirely? If the latter, what do you intend to do about joining the data regarding it's true position?
Krispy Scripts
Krispy Scripts 2017 年 5 月 5 日
I want to make it obvious that the data is being omitted - so I was hoping to show a gap in the axis, as well as the data.
Does that make sense?

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

採用された回答

dpb
dpb 2017 年 5 月 6 日
Well, the most trivial would be
i60=60/df; % index of 60 hz in array
idel=delF/df; % the delta indices for the range
x(i60-idel:i60+del)=nan; % NaN data doesn't plot
plot(x,y) % plot the data
xt=get(gca,'xtick'); % retrieve tick values
i60t=find(xt==60); % assume is tick at 60
set(gca,'xtick',[xt(1:i60t-1) xt(i60t+1:end)])
The latter part on the axes above leaves a gap at that location.
comes from
axes
xlim([0 100])
xt=get(gca,'xtick');
ix=find(xt==60);
set(gca,'xtick',[xt(1:ix-1) xt(ix+1:end)])
You could always then draw a little cross line at the point to show break or somesuch else if need more emphasis yet.

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 5 月 6 日

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by