【问题标题】:Hide the origin (0 on x and y axis) in matplotlib在 matplotlib 中隐藏原点(x 和 y 轴上的 0)
【发布时间】:2017-06-21 03:16:12
【问题描述】:

我正在编写一些代码,我想从图表中隐藏原点(x 轴上的零,y 轴上的零)。我已经尝试了我见过的所有可能性,但是当我得到标签列表时,它们返回空,或者当范围为时它们只返回几个值(-2、-1、0、1、2、3) -10 - 10。

另外,有没有办法将刻度本身的字体更改为 Computer Modern 10(LaTeX 字体?)

【问题讨论】:

    标签: python-2.7 matplotlib


    【解决方案1】:

    可以使用FuncFormatter 在坐标轴上隐藏0。此格式化程序的函数将简单地检查标签是否为 0,并在这种情况下返回一个空字符串。

    import matplotlib.pyplot as plt
    import matplotlib.ticker as ticker
    import numpy as np
    
    x = np.linspace(-5,8)
    y = np.sin(x)
    plt.plot(x,y)
    
    func = lambda x, pos: "" if np.isclose(x,0) else x
    plt.gca().xaxis.set_major_formatter(ticker.FuncFormatter(func))
    plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(func))
    
    plt.show()
    

    【讨论】:

    • 完美!但是,将此标记为答案,您是否也可以解决我的字体问题?它不允许我设置自己的字体!
    • 最好避免在同一个问题中问两个不同的问题。这是一个很好的例子,它说明了为什么一次问两个问题是不好的:你只是忘记为那个问题给出一个清晰的问题描述。那么您是否使用乳胶(usetex = True)?问题是什么?您是否尝试设置字体但它不起作用或者您不知道如何设置字体?你用谷歌搜索过吗?如果是这样,其他问题在多大程度上没有帮助等等。
    • 你完全正确!下次我会尽量坚持两个问题:)。我希望我的刻度是 Computer Modern 字体,而不是 LaTeX 中的 RENDER。我已经完成了从一开始手动更改 rcParams 到使用更新功能等的每一个 StackOverflow 建议。
    猜你喜欢
    • 2014-10-30
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多