我需要打印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
的图表。有没有办法纠正这个?
答案 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()