【问题标题】:How to plot tick values in-place如何就地绘制刻度值
【发布时间】:2016-02-08 18:30:41
【问题描述】:

以下生成一个图,其中 y 刻度为 -1, -0.5, 0, 0.5, 1 并且它们的缩放比例绘制在其他地方,我如何强制 matplotlib 将 tic 原位绘制为 -1e-9, -0.5-e9... 所以我不必搜索其他部分刻度值的潜在修正图?

import matplotlib.pyplot as plot
plot.plot([0, 1e-9, 0, -1e-9])
plot.show()

Google 将我带到 plot.ticklabel_format(useOffset = False),但不幸的是它没有 useScaling 参数。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    执行此操作的一种方法是获取 y 轴刻度值,根据需要对其进行格式化,然后将它们作为 y 轴刻度标签添加回绘图。

    import matplotlib.pyplot as plt
    plt.plot([0, 1e-9, 0, -1e-9])
    
    # pull out values for y-axis ticks
    yticks = plt.gca().get_yticks()
    
    # format new labels
    new_yticklabels = ['{:0=4.2f}e-9'.format(tick/1e-9) for tick in yticks]
    
    # set new labels
    plt.gca().set_yticklabels(new_yticklabels)
    
    plt.show()
    

    这可能不是最好的方法,但它确实有效。可能有一种方法可以使用ticker formatters 来做到这一点,例如FuncFormatter

    This answer 有助于获得正确的科学记数法格式。

    【讨论】:

    • 我改用了{:0=.2e}'.format(ytick),但除此之外这行得通。我还询问了邮件列表,但没有得到答复,所以也许这是唯一的方法。
    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 2012-09-26
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    相关资源
    最近更新 更多