我有两组数据:
Y = [0.8, 0.9, 0.5, 0.4…0.6]
X = [16,17,18,19…..216]
plt.plot(Y)
plt.xticks(np.arange(min(X), max(X)+1, 10))
给出了:
我试图绘制这个,但由于X轴上有> 200个点,我想每隔10个显示X刻度。
但现在不是X轴从16开始,它从0开始,第一个标签出现在16,虽然它不是正确的相应Y值。
如何绘制X,从16开始,从16开始每10个步进一次,每10个进入216个,如16/26/36/46 ......
谢谢
答案 0 :(得分:2)
使用pyplot
界面来解决这个问题非常麻烦/困惑。我会直接与Axes对象进行交互:
import numpy as np
import matplotlib.ticker as mticker
import matplotlib.pyplot as plt
%matplotlib inline
fig, ax = plt.subplots(figsize=(8, 3))
xtickslocs = np.arange(16, 217, step=10)
#ax.plot(x_data, y_data, ...)
ax.xaxis.set_major_locator(mticker.FixedLocator(xtickslocs))
ax.set_xlim(left=-5, right=225) # change this to suite your needs
这给了我:
答案 1 :(得分:0)
问题是,您应该对xticks使用2个数组,第一个是要放置标签的位置,第二个是标签本身。
plt.xticks(np.arange(16, 216, step=10), np.arange(16, 216, step=10))