当数据为 None 时,x 轴刻度会改变位置 - matplotlib
x-axis ticks change location when data is None - matplotlib
我使用以下方法绘制了一个列表:
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(range(samples_per_ant[0]), new_y[:samples_per_ant[0]], '-o', linewidth=3)
结果是刻度线在正确的位置,同样 spaced 在图的框架之间和距离图的框架(我无法添加图片来分享)。
但是当我想改变我使用的刻度时:
ax1.set_xticks(range(samples_per_ant[0]), case[:samples_per_ant[0]])
因为列表“new_y”的最后几个元素是“None”,例如
new_y = [1, 2, 3, ... , None, None, None]
看起来它稍微“拉伸”了 x 轴并且刻度线到达了框架的右边缘(边缘没有 space,正如预期的那样)。
我如何绘制它并将刻度保持在适当的位置?
当您手动设置 x-tick 标签时,您还应该手动注意 x-axis 限制:
from matplotlib import pyplot as plt
new_y = [1, 5, 3, 7 , None, 8, None, -1]
case = list("ABCDEFGHIJKL")
n = 7
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(range(n), new_y[:n], '-o', linewidth=3)
ax1.set_xticks(range(n), case[:n])
ax1.set_xlim(-0.3, n-0.7)
plt.show()
示例输出:
我使用以下方法绘制了一个列表:
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(range(samples_per_ant[0]), new_y[:samples_per_ant[0]], '-o', linewidth=3)
结果是刻度线在正确的位置,同样 spaced 在图的框架之间和距离图的框架(我无法添加图片来分享)。
但是当我想改变我使用的刻度时:
ax1.set_xticks(range(samples_per_ant[0]), case[:samples_per_ant[0]])
因为列表“new_y”的最后几个元素是“None”,例如
new_y = [1, 2, 3, ... , None, None, None]
看起来它稍微“拉伸”了 x 轴并且刻度线到达了框架的右边缘(边缘没有 space,正如预期的那样)。
我如何绘制它并将刻度保持在适当的位置?
当您手动设置 x-tick 标签时,您还应该手动注意 x-axis 限制:
from matplotlib import pyplot as plt
new_y = [1, 5, 3, 7 , None, 8, None, -1]
case = list("ABCDEFGHIJKL")
n = 7
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(range(n), new_y[:n], '-o', linewidth=3)
ax1.set_xticks(range(n), case[:n])
ax1.set_xlim(-0.3, n-0.7)
plt.show()
示例输出: