【问题标题】:Matplotlib x-labels for logarithmic graphMatplotlib x-labels 用于对数图
【发布时间】:2013-01-16 16:43:11
【问题描述】:

我正在尝试在 matplotlib 中绘制一些数据以显示实验结果,如下所示:

xvalues = [2, 4, 8, 16, 32, 64, 128, 256]
yvalues = [400139397.517, 339303459.4277, 296846508.2103, 271801897.1163,
           295153640.7553, 323820220.6226, 372099806.9102, 466940449.0719]

我希望将其绘制成对数刻度以使其更易于可视化,因此编写了以下代码:

import matplotlib.pyplot as plt

def plot_energy(xvalues, yvalues):
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)

    ax.scatter(xvalues, yvalues)
    ax.plot(xvalues, yvalues)

    ax.set_xscale('log')

    ax.set_xticklabels(xvalues)

    ax.set_xlabel('RUU size')
    ax.set_title("Energy consumption")
    ax.set_ylabel('Energy per instruction (nJ)')
    plt.show()

但是,正如您所见,我的 xlabel 并没有像我希望的那样出现,如下所示

如果我删除ax.set_xticklabels(xvalues) 行,我会得到以下结果,这也不是我想要的:

非常感谢在 x 轴上绘制正确值的帮助!

提前致谢。

【问题讨论】:

    标签: python graph matplotlib axis-labels


    【解决方案1】:

    您只是在更改刻度的标签,而不是刻度的位置。如果你使用:

    ax.set_xticks(xvalues)
    

    看起来像:

    大多数情况下,如果您想要完全不同的东西(例如类别标签),您只想设置(覆盖)标签。如果您想坚持使用轴上的实际单位,最好使用(如果需要)自定义格式化程序来设置刻度位置。

    【讨论】:

      【解决方案2】:
      import matplotlib.pyplot as plt
      import matplotlib.ticker as ticker
      
      def plot_energy(xvalues, yvalues):
          fig = plt.figure()
          ax = fig.add_subplot(1,1,1)
      
          ax.scatter(xvalues, yvalues)
          ax.semilogx(xvalues, yvalues, basex = 2)
          ax.xaxis.set_major_formatter(ticker.ScalarFormatter())
          ax.set_xlabel('RUU size')
          ax.set_title("Energy consumption")
          ax.set_ylabel('Energy per instruction (nJ)')
          plt.show()
      
      xvalues = [2, 4, 8, 16, 32, 64, 128, 256]
      yvalues = [400139397.517, 339303459.4277, 296846508.2103, 271801897.1163,
                 295153640.7553, 323820220.6226, 372099806.9102, 466940449.0719]
      plot_energy(xvalues, yvalues)
      

      产量

      【讨论】:

        猜你喜欢
        • 2016-10-24
        • 2022-11-17
        • 2022-11-25
        • 1970-01-01
        • 1970-01-01
        • 2018-12-03
        • 1970-01-01
        • 2020-05-19
        • 2017-02-24
        相关资源
        最近更新 更多