Вручную измените xticks в matplotlib - PullRequest
0 голосов
/ 24 октября 2018

Я использую следующий код для построения некоторого графика переменной, имеющей 4 значения:

for station in stations:
    os.chdir(inbasedir)
    nc = Dataset(surf + station + "Fluxnet.nc", 'r+')
    soil_moist = nc.variables['SoilMoist'][:,0,0]
    plt.plot(soil_moist, c='black', linewidth=0.5, label="Soil Moisture - 4 layers")

, что дает мне следующий график:

enter image description here

Как я могу изменить символы следующим образом:

  • как заменить 0 на 1, 1 на 2, 2 на 3 и 3 на 4?
    • как я могу удалить 0,5, 1,5, 2,5?
    • как мне избавиться от нумерации с плавающей запятой?

Iпопробовал этот ответ: Изменение «частоты тиков» на оси x или y в matplotlib?

, но это не работает и выдает следующую ошибку: TypeError: arange: вместо этого ожидается скалярные аргументыкортежа.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Обязательно нанесите на график фактические данные

Если 0 действительно означает 1, вы должны сначала построить 1.

x = [1,2,3,4]
y = [.3,.3,.25,.29]

plt.plot(x,y)
plt.show()

enter image description here

Установить местоположения целыми числами

from matplotlib.ticker import MultipleLocator

x = [1,2,3,4]
y = [.3,.3,.25,.29]

plt.plot(x,y)

plt.gca().xaxis.set_major_locator(MultipleLocator(1))
plt.show()

enter image description here

0 голосов
/ 24 октября 2018

Метод xticks для matplotlib.pyplot ожидает массив для значений, отображаемых в качестве первого аргумента, и массив с метками для этих элементов в первом массиве.Поэтому добавьте в свой код следующее:

plt.xticks(positions, labels)

Где positions - массив значений, которые вы хотите отобразить, и labels метки, которые вы хотите присвоить этим значениям.

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