开发者社区 问答 正文

配置横坐标轴

萨拉姆人 请给我一个代码,允许隐藏横坐标轴的第一个值(如果可能的话也是有序的),如下:spectre 幽灵 在第一个值4930的图的上面,在这个值的下面是隐藏的,这正是我想要的 这是我使用的python代码,但是它没有显示横坐标轴的所有标签 ax.xaxis.set_major_formatter (plt.NullFormatter ()) 谢谢你的帮助,我的朋友 问题来源StackOverflow 地址:/questions/59380154/configure-the-abscissa-axis

展开
收起
kun坤 2019-12-28 14:30:54 475 分享 版权
阿里云 AI 助理回答

你好!根据你的需求,你想要在matplotlib的图表中隐藏横坐标轴上的第一个刻度标签。你可以通过自定义FuncFormatter来实现这一功能,而不是使用NullFormatter。下面是一个示例代码,展示了如何隐藏横坐标轴的第一个值标签:

import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter

# 示例数据
x = [4930, 4940, 4950, 4960, 4970]
y = [1, 2, 3, 4, 5]

def hide_first_label(x, pos):
    """ 自定义格式化器,隐藏第一个标签 """
    if pos == 0:
        return ''
    else:
        return f'{x}'

fig, ax = plt.subplots()

# 应用自定义格式化器到横坐标轴
ax.xaxis.set_major_formatter(FuncFormatter(hide_first_label))

# 绘制数据
ax.plot(x, y)

# 隐藏顶部和右侧的脊柱以使图表更整洁
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

# 显示网格线
ax.grid(True, axis='both', linestyle='--', linewidth=0.5)

plt.show()

这段代码首先定义了一个hide_first_label函数,该函数检查给定的位置(pos),如果位置为0(即第一个标签),则返回空字符串(从而隐藏标签),否则返回正常的标签文本。然后,这个函数被设置为横坐标轴的主要格式化器。这样,图表绘制时,横坐标轴的第一个标签就被隐藏了。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: