Python 我的XTICK被推到左边

Python 我的XTICK被推到左边,python,matplotlib,Python,Matplotlib,我试着用一个百分比值来绘制时间,我有很多测量点。我还希望x轴显示格式化的时间,以便给出时间和地点的概念。最后一点要注意的是,我想要的XTICK比实际测量点少 我的问题是,当我尝试绘图时,我的XTICK会移到轴的左侧。见下图 我的代码看起来像这样 import time import matplotlib.pyplot as plt ticks = [ctime1, ctime2, ctime3] x = range(10) y = range(10) plt.xticks(x, ticks)

我试着用一个百分比值来绘制时间,我有很多测量点。我还希望x轴显示格式化的时间,以便给出时间和地点的概念。最后一点要注意的是,我想要的XTICK比实际测量点少

我的问题是,当我尝试绘图时,我的XTICK会移到轴的左侧。见下图

我的代码看起来像这样

import time
import matplotlib.pyplot as plt

ticks = [ctime1, ctime2, ctime3]
x = range(10)
y = range(10)
plt.xticks(x, ticks)
plt.plot(x,y)
plt.show()

谢谢大家!

这实际上是预期的行为,因为
x
变量包含10个值,而
ticks
变量只包含3个值。如果您不希望它们只显示在如图所示的左侧,则需要创建一个与
x
中的每个条目相对应的
tick
条目

另一个问题是,勾号文本太长,因此有很多重叠。也可以考虑旋转xxk。

import time
import matplotlib.pyplot as plt

x = range(10)
y = range(10)

# Xtick labels
ticks = [ctime(val) for val in x]
plt.plot(x,y)

# Plot ticks with a rotation
plt.xticks(x, ticks, rotation=12)

plt.show()
否则,您可以绘制更少的Xtick

import numpy as np

x = range(10)
y = range(10)

ticks = [ctime(1), ctime(2), ctime(3)]
xtickpos = np.linspace(min(x), max(x), 3)

plt.plot(x,y)
plt.xticks(xtickpos, ticks)

但在我的实际程序中,我有数千个测量点,在我的x光片上有超过5个刻度也不会提供太多信息。没有办法平均分配它们吗?@Uzzee请看我最后一个如何创建更少Xticksok的示例好吧,我想我明白了。起初,我认为xtickpos只对应于x值的显示顺序,比如[1,2,3]的第1个和第2个。非常感谢。