Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 格式化matplotlib x限制_Python_Matplotlib - Fatal编程技术网

Python 格式化matplotlib x限制

Python 格式化matplotlib x限制,python,matplotlib,Python,Matplotlib,我试图画出一个18点,其中x极限应该在(2000.0)到(2018.0)之间。有些代码是隐藏的,但我只是发布了关键部分。当我打印结果时,xlimit是 x = np.linspace(2000.0, 2018.0, num = 18) for i in range(len(x)): x[i]=int(x[i]) for i in range(2000, 2018): y.append(dic[str(i)]) fig, ax = plt.subplots() ax.p

我试图画出一个18点,其中x极限应该在(2000.0)到(2018.0)之间。有些代码是隐藏的,但我只是发布了关键部分。当我打印结果时,xlimit是

x = np.linspace(2000.0, 2018.0, num = 18)

for i in range(len(x)):
    x[i]=int(x[i])


for i in range(2000, 2018):
    y.append(dic[str(i)])


fig, ax = plt.subplots()

ax.plot(x, y, marker='o', color='r')

# set title

# set label for x

# set label for y

print(ax.get_xlim())

return ax
不是


请告诉我我做错了什么。

您需要自己设置xlim<代码>matplotlib自动选择限制和刻度

所以你需要使用

(2000.0, 2018.0)
xlim正是您想要的


请参见下面的图,您需要自己设置xlim<代码>matplotlib自动选择限制和刻度

所以你需要使用

(2000.0, 2018.0)
xlim正是您想要的


请看下面的图,您没有做错任何事;但是你可能对情节的界限有错误的期望

默认情况下,matplotlib在绘图的每一侧留有5%的边距。因此,如果您的数据在
[x.min(),x.max()]==[2000.0,2018.0]
范围内,您的限制将是

ax.set_xlim([x[0],x[-1]])
如果您不希望在数据周围有任何填充,请使用
ax.margins(x=0)
。在这种情况下,
打印(ax.get_xlim())
将打印
(2000.012018.0)

完整示例:

[x.min()-0.05*(x.max()-x.min()), x.max()+0.05*(x.max()-x.min())] == [1999.1, 2018.9]

你没有做错任何事;但是你可能对情节的界限有错误的期望

默认情况下,matplotlib在绘图的每一侧留有5%的边距。因此,如果您的数据在
[x.min(),x.max()]==[2000.0,2018.0]
范围内,您的限制将是

ax.set_xlim([x[0],x[-1]])
如果您不希望在数据周围有任何填充,请使用
ax.margins(x=0)
。在这种情况下,
打印(ax.get_xlim())
将打印
(2000.012018.0)

完整示例:

[x.min()-0.05*(x.max()-x.min()), x.max()+0.05*(x.max()-x.min())] == [1999.1, 2018.9]

为了使这一点重现,什么是
y
?y是x在字典中的一个特定值。这就像绘制(x,y)点一样。我必须使用plot(),而不是scatterplot来重现,什么是
y
?y是x在字典中的一个特定值。这就像绘制(x,y)点一样。我必须使用plot(),而不是scatterplot第一个值和结束值是正确的,但是中间的值仍然很奇怪。它们有很多小数,比如-2001.0588235294117,-2002.1176470588234。是的,但我认为这个答案解决了问题。您必须使用
ax.set\u xticks(x)
指定xtick。我建议把你的问题说得更清楚,你是说每个x值?如果你想这样,如果你想在x中显示值,那么使用我前面评论中的那行就是好办法。使用set_xticks,您还可以使用x的子集,例如,将
x[::2]
传递到
set_xticks
将在x轴上显示x中的其他每一项第一个值和结束值都是正确的,但中间的值仍然很奇怪。它们有很多小数,比如-2001.0588235294117,-2002.1176470588234。是的,但我认为这个答案解决了问题。您必须使用
ax.set\u xticks(x)
指定xtick。我建议把你的问题说得更清楚,你是说每个x值?如果你想这样,如果你想在x中显示值,那么使用我前面评论中的那行就是好办法。使用set_xticks,您还可以使用x的子集,例如,将
x[::2]
传递到
set_xticks
将在x轴上显示x中的其他每一项