Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何选择轴中的第一个和最后一个记号标签,并定义其之间的主记号数?_Python_Numpy_Matplotlib - Fatal编程技术网

Python 如何选择轴中的第一个和最后一个记号标签,并定义其之间的主记号数?

Python 如何选择轴中的第一个和最后一个记号标签,并定义其之间的主记号数?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在制作一些模板,并制作一些选项来控制轴中的刻度分布。到目前为止,我已经添加了几个选项,最后一个选项我自己也做不到。我希望能够选择: 轴中的第一个和最后一个主刻度 在第一个刻度和最后一个刻度之间选择主刻度的数量,并自动将其线性分布。 我已经设法完成了第一项任务,但是我不知道如何完成第二项任务 Obs:我知道如何使用大刻度和小刻度,但我希望只能使用大刻度 以下是代码示例: import numpy as np import matplotlib.pyplot as plt from matpl

我正在制作一些模板,并制作一些选项来控制轴中的刻度分布。到目前为止,我已经添加了几个选项,最后一个选项我自己也做不到。我希望能够选择:

轴中的第一个和最后一个主刻度 在第一个刻度和最后一个刻度之间选择主刻度的数量,并自动将其线性分布。 我已经设法完成了第一项任务,但是我不知道如何完成第二项任务

Obs:我知道如何使用大刻度和小刻度,但我希望只能使用大刻度

以下是代码示例:

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

data = np.loadtxt('my_data.dat')        # Load Data File

x = data[:,0]
y = data[:,6]

x_first_tick = 0
x_last_tick = 2

y_first_tick = 0
y_last_tick = 100

x_major_ticks = 5                    # Number of major ticks in x axis
y_major_ticks = 5                    # Number of major ticks in y axis

x_locs= [x_first_tick, x_last_tick]
y_locs =[y_first_tick, y_last_tick]

fig = plt.figure()
ax = fig.add_subplot()
ax.scatter(x, y, s=1)

ax.xaxis.set_major_locator(FixedLocator(locs = x_locs))
ax.yaxis.set_major_locator(FixedLocator(locs = y_locs))

plt.tight_layout()
plt.show()
图形输出:

提前谢谢

编辑:发布我使用发布原则创建的模板选项 约翰


可以按如下方式设置刻度:

ax.set_xticks(
    [x_first_tick + (x_last_tick - x_first_tick) * i / (x_major_ticks - 1) for i in range(x_major_ticks)],
    minor=False)
ax.set_yticks(
    [y_first_tick + (y_last_tick - y_first_tick) * i / (y_major_ticks - 1) for i in range(y_major_ticks)],
    minor=False)

参数minor默认为False,可以省略。对于小刻度,使用minor=True。

谢谢!同样的原则也适用于我实施的其他一些方案。
ax.set_xticks(
    [x_first_tick + (x_last_tick - x_first_tick) * i / (x_major_ticks - 1) for i in range(x_major_ticks)],
    minor=False)
ax.set_yticks(
    [y_first_tick + (y_last_tick - y_first_tick) * i / (y_major_ticks - 1) for i in range(y_major_ticks)],
    minor=False)