Как изменить yticks в сюжете PSD? - PullRequest
1 голос
/ 14 октября 2019

Скачать Zip с signal.csv

Я могу создать psd plot следующим образом:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv('signal.csv')/1000
dt = df.iloc[1,0] - df.iloc[0,0]
data=df['1']
print(f'time delta: {dt*1e12:.0f} ps')
print(f'time: {(len(data)*dt*1e6):.3f} \u03BCs')


resolution = 2000
plt.psd(data,
        resolution,
        1/0.1,
        lw=1,
        color='red');
plt.xlim(0,5)
plt.xlabel('Frequency / GHz')
plt.ylabel('Power Spectral Density / dB/Hz')
plt.show()

enter image description here

Как я могу изменить его ytickrate? Когда я пытаюсь добавить:

plt.yticks(np.arange(-100,0,10))

весь график трансформируется:

enter image description here

Как я могу изменить psd plot такчто ось y представлена ​​в 10-х годах без изменения графика?

1 Ответ

1 голос
/ 14 октября 2019

Вам просто нужно снова установить y-lim:

plt.ylim((-72,-25))

, и вы можете настроить пределы в соответствии с желаемым выходом.

Редактировать Если выхотите сделать это автоматически вы можете использовать axs.get_ylim():

fig, axs = plt.subplots(figsize=(10, 10),constrained_layout=True)
axs.psd(data,resolution,1/0.1,lw=1,color='red')

axs.set_xlim(0,5)
axs.set_xlabel('Frequency / GHz')
axs.set_ylabel('Power Spectral Density / dB/Hz')

ylim=axs.get_ylim()
axs.set_yticks(np.arange(-100,0,10))
axs.set_ylim(ylim)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...