Python 如何在固定位置上设置记号,matplotlib

Python 如何在固定位置上设置记号,matplotlib,python,matplotlib,Python,Matplotlib,有人能帮我使用matplotlib在固定位置设置刻度吗?正如本教程所述,我尝试使用FixedPosition: ax = pl.gca() ax.xaxis.set_major_locator(eval(locator)) 但当我尝试运行时,它告诉我set_major_locator方法不存在 一个简单的例子将非常有用 谢谢。只需使用ax.set_xticks(位置)或ax.set_xticks(位置) 例如: import matplotlib.pyplot as plt fig, ax

有人能帮我使用matplotlib在固定位置设置刻度吗?正如本教程所述,我尝试使用FixedPosition:

ax = pl.gca()
ax.xaxis.set_major_locator(eval(locator))

但当我尝试运行时,它告诉我set_major_locator方法不存在

一个简单的例子将非常有用


谢谢。

只需使用
ax.set_xticks(位置)
ax.set_xticks(位置)

例如:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set_xticks([0.15, 0.68, 0.97])
ax.set_yticks([0.2, 0.55, 0.76])
plt.show()

这个链接是一个混乱的断章取义的链接。使用
eval
生成示例图形可能非常聪明,但不清楚
locator
的值是什么。此方法将删除绘图上的现有刻度。如果我想在不影响现有刻度的情况下添加这些额外的刻度,该怎么办?@dnth:您可以
twinx()
twiny()
在图表的另一侧创建一个带有刻度的新轴。@dnth您可以使用
locs=ax.xaxis.get_ticklocs()
,修改该列表以添加所需的刻度,然后按照乔的建议,
ax.set\xticks(loc)
。想详细说明吗?这很有帮助。如果可以的话,我会投5票赞成这个答案。这真的很有帮助。如果有人在寻找解释,set_major_locator()方法会根据列表pos_列表设置记号在图形中的位置,并根据pos_列表设置记号标签。现在使用set_major_formatter()返回旧的记号标签。
import numpy as np
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt

name_list = ('Omar', 'Serguey', 'Max', 'Zhou', 'Abidin')
value_list = np.random.randint(0, 99, size = len(name_list))
pos_list = np.arange(len(name_list))

ax = plt.axes()
ax.xaxis.set_major_locator(ticker.FixedLocator((pos_list)))
ax.xaxis.set_major_formatter(ticker.FixedFormatter((name_list)))
plt.bar(pos_list, value_list, color = '.75', align = 'center')

plt.show()