在Matplotlib中手动更改Xticks

时间:2018-10-24 13:03:47

标签: python matplotlib

我正在使用以下代码绘制具有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

如何修改xticks,如下所示:

  • 如何将0替换为1,将1替换为2,将2替换为3,将3替换为4?
    • 如何删除0.5、1.5、2.5?
    • 如何摆脱浮点数计算?

我尝试了以下答案: Changing the "tick frequency" on x or y axis in matplotlib?

但是它不起作用,并向我提供以下错误: TypeError:arange:应使用标量参数而不是元组。

2 个答案:

答案 0 :(得分:1)

xticks的{​​{1}}方法期望值的数组显示为第一个参数,并为第一个数组中的那些元素添加标签的数组。因此,将以下内容添加到您的代码中:

matplotlib.pyplot

plt.xticks(positions, labels) 是要显示的值的数组,positions是要赋予这些值的标签。

答案 1 :(得分:1)

确保绘制实际数据

如果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