matplotlib:在显示实际值的同时在 semilogx 中绘图
matplotlib : plot in semilogx while displaying the actual values
我需要打印一个 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
的图表。有没有办法纠正这个?
这会是您要找的吗?
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()
如 the pyplot.xticks()
doc 所示,xticks()
的第一个参数是刻度位置,第二个是刻度标签。因此,plt.xticks(xdata)
仅更改刻度位置,但不会将刻度标签也放在那里。
因为您希望位置和标签相同,所以您可以简单地使用:
plt.xticks(xdata, xdata)
我需要打印一个 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
的图表。有没有办法纠正这个?
这会是您要找的吗?
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()
如 the pyplot.xticks()
doc 所示,xticks()
的第一个参数是刻度位置,第二个是刻度标签。因此,plt.xticks(xdata)
仅更改刻度位置,但不会将刻度标签也放在那里。
因为您希望位置和标签相同,所以您可以简单地使用:
plt.xticks(xdata, xdata)