Python 图例位置,类似于电话

Python 图例位置,类似于电话,python,matplotlib,legend,Python,Matplotlib,Legend,多年来,我一直在想为什么Python图例位置的编号毫无意义: Location String Location Code 'best' 0 'upper right' 1 'upper left' 2 'lower left' 3 'lower right' 4 'right' 5 'center left' 6 'center right' 7 'lower center' 8 'upper center' 9 'center'

多年来,我一直在想为什么Python图例位置的编号毫无意义:

Location String Location Code
'best'          0
'upper right'   1
'upper left'    2
'lower left'    3
'lower right'   4
'right'         5
'center left'   6
'center right'  7
'lower center'  8
'upper center'  9
'center'        10
对我来说,将这些数字归类为手机号码会更有意义:

Location String Location Code
'best'          0
'upper left'    1
'upper center'  2
'upper right'   3
'center left'   4
'center'        5
'center right'  6
'lower left'    7
'lower center'  8
'lower right'   9
有什么方法可以在脚本中处理它,我可以在每次绘图时调用它,这样我就不必每次都这么做了

或者他们会很快改变它吗


ps:将“右”和“右中”同时用作图例位置选项的目的是什么?

这些数字基本上是为了向后兼容。matplotlib文档中的大多数示例已更改为使用文本形式。
对于课文,你只需要记住这一点

  • 首先是垂直方向(“上”、“中”、“下”),然后是水平方向(“左”、“中”、“右”)
  • 没有“中心”,那只是“中心”

你当然可以把这张小照片打印出来

并将其固定到屏幕上



一个更为慎重的方法是使用“指南针”符号,如“N”、“NW”、“SE”等。我现在提出了这样的解决方案。

如果你绝望了,你可以这样做

locations = [0, 2, 9, 1, 6, 10, 7, 3, 8, 4]

plt.legend(loc=locations[telephone_index])

(如果你真的很绝望,你甚至可以为
legend()
)编写一个包装器).

现在更改会导致大量向后中断的不兼容性…为什么数字对您如此重要?为什么不使用名称?@JonClements,因为我记不清名称。如果数字会遵循其他标准,如电话上的数字或键盘上的数字广告,那么是的,我很容易记住这些名字,我总是怀疑:“是‘左上’还是‘左上’?“每隔几个月左右做一次基本的绘图,我发现自己每次都忘记了传说地点的确切名称。老实说,我不可能是唯一一个有同样问题的人,对吧?!我也是,但是很多代码只有一个人使用过。这是一个什么都可以做的游乐场。很好的建议,这确实为问题提供了一个(间接的)解决方案“右”和“中右翼”相互重叠吗?为什么“右”向上移动了一点,“右中”在图形边界之外移动了一点?我发现自己无法识别这两者之间的区别。这是为了图的可读性。5和7是相同的;“右”也只是为了向后兼容。我现在学习使用指南针符号。