【问题标题】:Plot lines in log-scale (Python)以对数比例绘制线(Python)
【发布时间】:2014-07-03 21:39:27
【问题描述】:

我正在尝试使用以下方法在绘图中绘制虚线:

ax.plot([dt.datetime(2012,01,27,18,19),
         dt.datetime(2012,01,27,18,19)], [0, 1300], 'k--', lw=2)

当我使用线性刻度时效果很好,但是当我定义对数刻度时

ax.set_yscale('log')

线条不出现

【问题讨论】:

    标签: python-2.7 matplotlib plot scale


    【解决方案1】:

    它不会显示,因为您在 y 轴上有数字 0,请将其更改为正数,例如1:

    import matplotlib.pyplot as plt
    import datetime as dt
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot([dt.datetime(2012,01,27,18,19),
         dt.datetime(2012,01,27,18,19)], [1, 1300], 'k--', lw=2)
    ax.set_yscale('log')
    plt.show()
    

    说明:

    log(0) 未定义。 Numpy 返回-inf(它背后有一些逻辑),但如果你尝试用infnan 值绘制一个点,它不会被绘制。对于由线段组成的图,这意味着两条线段将消失。现在您尝试在现有点和不存在点之间画一条线。 (您可以通过将样式更改为“o”来验证这一点。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2019-03-03
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多