Python 如何删除matplotlib中轴刻度中小数点后的数字?

Python 如何删除matplotlib中轴刻度中小数点后的数字?,python,matplotlib,Python,Matplotlib,我有 这(以及一些附加代码)生成了下面的图,但我想从顶部x轴上的刻度标签中删除小数点及其后的数字 使用没有帮助 将数字转换为整数: tick_location = np.linspace(0.01, 10, num=10, endpoint=True) ax2.set_xticks(tick_location) tick_labels = np.around(1/new_tick_loc*1e4,decimals=-2) ax2.set_xticklabels(tick_labels) 在我发

我有

这(以及一些附加代码)生成了下面的图,但我想从顶部x轴上的刻度标签中删除小数点及其后的数字

使用没有帮助


将数字转换为整数:

tick_location = np.linspace(0.01, 10, num=10, endpoint=True)
ax2.set_xticks(tick_location)
tick_labels = np.around(1/new_tick_loc*1e4,decimals=-2)
ax2.set_xticklabels(tick_labels)

在我发布自己的问题后,我似乎很快就会找到答案。这不是很简单,但很有效。只需插入四行,将勾号转换为字符串,并手动删除小数点及其后的所有内容:

ax2.set_xticklabels(tick_labels.astype(int))
“范围(0,10)”中的“10”给出了1000的最后一个刻度,即使它没有反映在下图中。“[0]”取字符串的第一部分,该部分现在已被拆分——对我来说,是没有小数的部分。以及所需的勾号标签:


我一直在尝试类型转换,但我得到了以下错误,包括您的建议:AttributeError:“list”对象没有属性“astype”。我找到了一个迂回的答案,但它是有效的,贴在下面。对不起。打字错误更改了括号的位置。太好了-谢谢!你也可以跳过“np”,直接用“int”。这比我下面的解决方案简单。谢谢你的提示。改进。如果它解决了你的问题,你可以给出一个答案。
tick_location = np.linspace(0.01, 10, num=10, endpoint=True)
ax2.set_xticks(tick_location)
tick_labels = np.around(1/new_tick_loc*1e4,decimals=-2)
tick_labels_str = tick_labels.astype(str)
tick_labels_free=[]
for i in range(0,10):
    tick_labels_free.append(tick_labels_str[i].split('.')[0])
ax2.set_xticklabels(tick_labels_free)