【发布时间】:2018-02-26 09:52:05
【问题描述】:
我有 2 个列表,每个列表有 128 个元素
x = [1,2,3,...,128]
y = [y1,y2,...,y128]
我应该如何使用 matplotlib 绘制 (x,y),其中 x 轴出现在这个 screenshot 中?
为了复制图表,我 (1) 从原始列表中创建了 2 个额外的列表,并且 (2) 使用了 set_xticklabels:
f, ax1 = plt.subplots(1,1,figsize=(16,7))
x1 = [1, 2, 4, 8, 16, 32, 64, 128]
y1 = [y[0],y[1],y[3],y[7],y[15],y[31],y[63],y[127]]
line1 = ax1.plot(x1,y1,label="Performance",color='b',linestyle="-")
ax1.set_xticklabels([0,1,2,4,8,16,32,64,128])
ax1.set_xlabel('Time Period',fontsize=15)
ax1.set_ylabel("Value",color='b',fontsize=15)
这种方法的问题是只绘制了 8 对值,而省略了 120 对。
【问题讨论】:
-
你用来获取这张图片的代码是什么?使用
plt.plot(x, f(x))之类的函数还不够吗? -
@IMCoins 使用 plt.plot(x, f(x)) 是不够的,因为我的 x 轴的间隔是不均匀的。我知道如何在我的图表上显示 8 个点,但我要的是如何显示 128 个数据点,同时仍然具有所附屏幕截图所示的 x 轴。
标签: python matplotlib axis