python matplotlib提供了错误的边界角

python matplotlib提供了错误的边界角,python,matplotlib,Python,Matplotlib,有两个使用matplotlib创建的绘图示例(均来自matplotlib网页): (右)。(错) 第二张照片中的边界角(放大后)缺少一小块。线的终点是垂直线的中心,而不是另一条边的终点 但是,即使我使用web上的图像源代码: import matplotlib.pyplot as plt import numpy as np x, y = np.random.randn(2, 100) fig = plt.figure() ax1 = fig.add_subplot(211) ax1.xco

有两个使用matplotlib创建的绘图示例(均来自matplotlib网页):

(右)。(错)

第二张照片中的边界角(放大后)缺少一小块。线的终点是垂直线的中心,而不是另一条边的终点

但是,即使我使用web上的图像源代码:

import matplotlib.pyplot as plt
import numpy as np

x, y = np.random.randn(2, 100)
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.xcorr(x, y, usevlines=True, maxlags=50, normed=True, lw=2)
ax1.grid(True)
ax1.axhline(0, color='black', lw=2)

ax2 = fig.add_subplot(212, sharex=ax1)
ax2.acorr(x, usevlines=True, normed=True, maxlags=50, lw=2)
ax2.grid(True)
ax2.axhline(0, color='black', lw=2)

plt.show()
我得到了错误的结果。为什么会这样?我的matplotlib/python版本中有什么bug?还有别的吗

我使用python 3.4.3和matplotlib 1.3.1


提前感谢。

这不是一个bug,而是由于轴脊椎使用了默认设置。
capstyle
定义了一行的终止方式,以及两行连接时的外观

您可以将
capstyle
设置为
butt
(默认)、
round
projecting
。您可以通过为每个轴脊椎调用
spines.set_capstyle
来更改此设置

for spine in ax.spines.values():
    spine.set_capstyle('projecting')
对于matplotlib(1.3)的特定版本,看起来是当他们将面片对象的默认
capstyle
更改为
butt
时,但无法像当前版本中那样设置
脊椎的capstyle:

对于面片,现在使用的capstyle为BUTTT,以与大多数其他对象的默认值一致,并避免在使用较大线宽时非实心线型显示为实心的问题。以前,补丁使用capstyle='projecting'


我加了一句。看起来这应该是一个
rcParam
,但我找不到任何相关的options@tom可能是虚线。虚线样式
?不,这将是虚线对象,我想谢谢你的回答。然而,当我尝试使用它时,我发现“Spine”对象没有属性“set_capstyle”我做错了什么?@fales
ax
只是一个示例变量名。在您的情况下,您将使用
ax1
ax2
代替。。。