Python 中的 Matplotlib.ticker.FixedLocator 类

原文:https://www . geeksforgeeks . org/matplotlib-ticker-fixed locator-class-in-python/

Matplotlib 是 Python 中一个惊人的可视化库,用于数组的 2D 图。Matplotlib 是一个多平台数据可视化库,构建在 NumPy 数组上,旨在与更广泛的 SciPy 堆栈一起工作。

matplotlib.ticker.FixedLocator

matplotlib.ticker.FixedLocator类是matplotlib.ticker.Locator类的子类,用于固定刻度位置。如果 nbins 的值不等于无,那么所有可能位置的数组将被二次采样,以保持刻度总数小于或等于 nbins + 1。进行子采样以包括最小的绝对值。例如,如果零包含在可能值的数组中,那么它保证一个选定的刻度。

语法:class matplotlib . ticker . fixed locator(locas,nbins=None)

参数:

  • locas:代表蜱的位置。
  • nbins: 表示数据要划分的面元数。

该类方法:

  • set_params(self,nbins=None): 用于设置定位器内的参数。
  • tick_value(self,vmin,vmax): 返回 vmax 和 vmin 之间的 tick 位置。

例 1:

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

np.arange(0, 15, 5)
plt.figure(figsize = [6,4])

x = np.array([1, 2, 3, 4, 5,
              6, 7, 8, 9, 10,
              11, 12, 13, 14, 15])

y = np.array([15, 16, 17, 18, 
              19, 20, 40, 50, 
              60, 70, 80, 90, 
              100, 110, 120])

ax = sns.pointplot(x, y,
                   color = 'k',
                   markers = ["."], 
                   scale = 2)

ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator([1,5,8]))

plt.show()

输出:

例 2:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker

t = np.arange(0.0, 100.0, 0.1)
s = np.sin(0.1 * np.pi * t)*np.exp(-t * 0.01)

fig, ax = plt.subplots()
plt.plot(t, s)

ax1 = ax.twiny()
ax1.plot(t, s)

ax1.xaxis.set_ticks_position('bottom')

majors = np.linspace(0, 100, 6)
minors = np.linspace(0, 100, 11)
thirds = np.linspace(0, 100, 101)

ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator(majors))
ax.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(minors))
ax1.xaxis.set_major_locator(matplotlib.ticker.FixedLocator([]))
ax1.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(thirds))

ax1.tick_params(which ='minor', length = 2)
ax.tick_params(which ='minor', length = 4)
ax.tick_params(which ='major', length = 6)

ax.grid(which ='both', axis ='x', linestyle ='--')

plt.axhline(color ='green')

plt.show()

输出: