有没有一种方法可以总是将Matplotlib的x轴上的刻度放置在轴的开头、中间和结尾,而不是Matplotlib自动放置它们?例如,我有一个如下所示的图。matplotlib plot有没有一种方法可以总是将25放置在最开头,80放置在中间,95放置在最结尾?这是我在Jupyter Notebook中尝试的代码:
import matplotlib.pyplot as plt
def box(ax_position, percentile_values, label, label_position):
fig = plt.figure(figsize = (10, 2))
ax1 = fig.add_axes(ax_position)
ax1.set_xticks(percentile_values)
ax1.tick_params(axis="x",direction="out", pad=-15, colors='b')
ax1.set_yticks([])
ax1.text(*label_position, label, size=8)
plt.show()
box((0.4, 0.5, 0.4, 0.1), (25,80,95), "CA",(0.01, 1.3))
传入percentile_values的值的数量总是3,这3个值总是需要放置在开头、中间和结尾--但是Matplotlib会自动根据数值放置这些刻度。这就是我要找的:what I need
我尝试使用matplotlib.ticker.FixedLocator,但这对我没有帮助,虽然我只能显示3个刻度,但刻度的位置是由Matplotlib选择的,而不是放置在开始,中间和结束。
1条答案
按热度按时间qpgpyjmq1#
您需要将
set_xticks()
拆分为只有条目数-(0,1,2)并使用set_xticklables()
给予要显示的文本-(25,80,95)。注意,我已经使用numpy的linspace
来获得基于percentile_value
长度的数字列表。另外,我已经删除了pad=-15
,因为你已经表明你想要的数字下面的刻度。希望这是你正在寻找的。