Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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图_Python_Matplotlib - Fatal编程技术网

Python 固定matplotlib图

Python 固定matplotlib图,python,matplotlib,Python,Matplotlib,在matplotlib中,我喜欢通过从原点移动脊椎来自定义绘图,例如: plot(range(10), marker='o', ms=20) #customize axes axes = gca() axes.spines['right'].set_color('none') axes.spines['top'].set_color('none') axes.xaxis.set_ticks_position('bottom') axes.spines['bottom'].set_positio

在matplotlib中,我喜欢通过从原点移动脊椎来自定义绘图,例如:

plot(range(10), marker='o', ms=20)

#customize axes
axes = gca()
axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))
axes.tick_params(axis='x', direction='out')
axes.tick_params(axis='y', direction='out')

问题: 我能做些什么来避免我的标记在边界处被切割

from pylab import *
plot(range(10), marker='o', ms=20)

#customize axes
axes = gca()

axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))
axes.tick_params(axis='x', direction='out')
axes.tick_params(axis='y', direction='out')
axes.spines['bottom'].set_smart_bounds(True)
axes.spines['left'].set_smart_bounds(True)
axes.set_xlim(-0.5, 9.5)
axes.set_ylim(-0.5, 9.5)
axes.set_xticks(range(10))
axes.set_yticks(range(10))

必须通过将
clip\u on=False
添加到绘图命令来关闭剪裁:

import numpy as np
import matplotlib.pyplot as plt

plt.plot(range(10), marker='o', ms=20, clip_on=False)

axes = plt.gca()
axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))
axes.tick_params(axis='x', direction='out')
axes.tick_params(axis='y', direction='out')

plt.show()
产生:

这妨碍了我漂亮的脊骨,请看@elyas,因为我看到的唯一区别是蜱虫。您可以使用轴设置刻度。设置刻度(范围(10)),y轴也是如此。这应该给你同样的结果。不幸的是,它没有,看。两端不太正确。@elyase所以你不希望轴在0到9之间,并且是整圈。。。我更新了这个例子。@ViktorKerkez这个现在看起来不错,但糟糕的是,它之前累积了几张反对票。我希望你不介意,我添加了图片内联以帮助你的帖子。这很好。这与另一个答案中的
set_smart_bounds
有什么区别?我不知道
set_smart_bounds
有什么作用:-知道为什么这条线消失了吗?哦,那是我的绘图风格。我会换的。我想是别的东西,我试过了,在这里也是一样的。