Принудительный отрицательный xticks с журналом xscale - PullRequest
0 голосов
/ 22 мая 2019

Здравствуйте. Я пытаюсь построить некоторые данные, которые эволюционируют в логарифмическом масштабе (base2), но имеют некоторые отрицательные части (это связано с частотой, поэтому отрицательно от моей центральной частоты).Я смог построить его полностью, но метки галочек неверны (должно быть от -0,5 до 64, хотя мне пришлось заставить -0,5 быть положительным, чтобы xscale включил его)

xData = np.array([10, 20, 40, 80, 160, 320, 640, 1280])

yData1 = np.array([-6.30404, 8.69744, 12.975, 26.69, 18.76, 18.85, 18.91, 22.68])

yData2 = np.array([-7.59254, 10.9645, 21.345, 20.48, 22.34, 25.57, 24.68, 25.52])

yData3 = np.array([2.20636, 1.98, 6.14625, 11.099, 23.41, 23.77,35.6, 33.996,])

yData4 = np.array([-3.19325, 0.8, 4.48, 11.033, 22.18, 23.15, 31.826, 34.755])

yData5 = np.array([0.592, 3.84101, 5.12036, 12.02374, 17.124, 22.88, 26.49, 32.117])

yData6 = np.array([0.516, 5.23039, 7.66303, 11.546, 16.918, 19.15, 24.35, 25.6732])

plt.figure()
plt.plot(xData/20, yData1)
plt.plot(xData/20, yData2)
plt.plot(xData/20, yData3)
plt.plot(xData/20, yData4)
plt.plot(xData/20, yData5)
plt.plot(xData/20, yData6)
plt.grid(True, linestyle='--', which='both')
plt.ylim(-10,40)
plt.xticks([-0.5, 1, 2, 4, 8, 16, 32, 64])
plt.xscale('log', basex=2)
plt.gca().set_xticklabels([0.5, 1, 2, 4, 8, 16, 32, 64])
#plt.legend()
plt.show()

1 Ответ

0 голосов
/ 22 мая 2019

Я не уверен, почему первый тик расположен по умолчанию и обозначен 0,5 вместо -0,5 по умолчанию, но вы были очень близки к тому, чтобы изменить метки тиков. Вам просто нужно переключить -0,5 на 0,5

plt.xscale('log', basex=2)
plt.xticks([0.5, 1, 2, 4, 8, 16, 32, 64]) # <--- change -0.5 to 0.5
plt.gca().set_xticklabels([-0.5, 1, 2, 4, 8, 16, 32, 64]) # <--- change 0.5 to -0.5

enter image description here

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