Python 我的XTICK被推到左边
我试着用一个百分比值来绘制时间,我有很多测量点。我还希望x轴显示格式化的时间,以便给出时间和地点的概念。最后一点要注意的是,我想要的XTICK比实际测量点少 我的问题是,当我尝试绘图时,我的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)
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个。非常感谢。