matplotlib:在显示实际值时在semilogx中绘图

时间:2015-03-25 14:35:27

标签: python matplotlib

我需要打印semilogx图表,只有x轴应显示xdata中包含的值

import matplotlib.pyplot as plt

def plot_stuff(xdata, ydata):
    """ 
    """
    plt.clf()
    # titles and stuff ... 
    plt.semilogx(xdata, ydata)

    plt.xticks(xdata) # this line won't do the work

    plt.show()

我得到的是一个沿x轴显示值10^0 ... 10^n的图表。有没有办法纠正这个?

2 个答案:

答案 0 :(得分:4)

the pyplot.xticks() doc所示,xticks()的第一个参数是刻度位置,第二个是刻度标签。因此,plt.xticks(xdata)仅更改刻度线位置,但也不会将刻度标签放在那里 因为您希望位置和标签相同,所以您只需使用:

plt.xticks(xdata, xdata)

答案 1 :(得分:1)

这可能是你想要的吗?

import matplotlib.pyplot as plt

def plot_stuff(xdata, ydata):
    """ 
    """
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.semilogx(xdata, ydata)

    ax.set_xticks(xdata)
    ax.set_xticklabels(xdata)

    plt.show()