【问题标题】:Two tick labels overlap in the plot with symlog scale两个刻度标签在图中以 symlog 比例重叠
【发布时间】:2019-02-19 02:10:02
【问题描述】:

我在 x 轴上用symlog 绘制了一个图,并打算使线性区域足够短(linscalex = 0.2)。请看我的图表。但是,日志区域的第一个刻度标签 (1e-2) 与原点 (0) 重叠。无论如何要删除刻度标签 1e-2 吗?

这是我的代码

plt.xscale('symlog', linthreshx = 0.05, 
           subsx = range(2,10), linscalex = 0.2)

【问题讨论】:

  • 期望的结果是什么?删除 0?
  • 我希望删除 1e-2,谢谢。
  • 我想你可以通过plt.gca().set_xticks([0,.1,1,10])设置刻度?
  • 谢谢@ImportanceOfBeingErnest,它解决了我的问题。但我想知道是否有更通用的方法?就像自动删除 symlog 的第二个刻度标签,尽管有其他标签。

标签: python matplotlib


【解决方案1】:

正如 @ImportanceOfBeingErnest 在 cmets 中指出的那样,您可以简单地使用

显式设置刻度
plt.gca().set_xticks([0, .1, 1, 10])

但由于您要求更通用的解决方案,我想提供一个 - 您可以获取现有的 xticks 并简单地使用以下内容不加选择地删除第二个(可能是一种将其折叠成单线的方法)

ticks = plt.xticks()[0]
ticks[1] = ticks[0]
plt.xticks(ticks[1:])

显然这有点生硬,因为它会总是删除第二个标签,即使它没有干扰。

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 2020-02-06
    • 2012-03-14
    • 2019-05-11
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多