Why plotting the fft result of a signal from -f to f gives different result compared to 0 to f? When I plot the fft result of an audio signal on the positive side of frequency axis I get the following figure, I understand the signal on the right side of the Nyquist point is just a mirror image of the original signal, the sharp noise is somewhere around 1700Hz:

Now when I plot the fft of the same signal from negative frequency to positive, that noisy component is now sitting somewhere around 2300Hz and when I check the fft of the audio signal, the sharp noise is indeed at 2300Hz and not 1700Hz, the audio content also is no longer below 1KHz and it's now instead just below 4KHz. What exactly is going on here ? Why the top plot appears to be giving me the wrong information ?

I have tried to find the reason online but I don't think I am googling the right words, hence can't find anything.
Can you advise:

What is the sample interval
What did you use to calculate the spectrum.

Edit 2:
The top one looks right, plotting from 0 Hz to 2*Nyquist. Not sure how
you calculated the spectrum, but this may be the convention
with that package.
If you prefer to present the spetrum from -ve Nyq to +ve Nyq you can't
just plot the same results with new axes.
You will need to recalculate
either with a function which uses that convention, or else do the DFT
yourself, or else you could just move the results above nyquist
and use these for the negative part.
Edit 3:
Nothing wrong, It is just an axis labelling thing.
The way your program has calculated the FFT, the answer is normaly interpreted
as 0Hz to 2*Nyquist.
Or if you prefer you could relabel it from left to right as:
(0-&gt; nyquist), then (-Nyquist &gt; 0)
If you want it to present as (-Nyq &gt; Nyq) you need to rearrange the
answer. (&quot;Roll&quot; the right half of the array across to the left.)