图例位置,类似于电话

时间:2018-10-30 08:24:07

标签: 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'        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

有什么办法可以在脚本中进行操作,每次绘制时都可以调用该脚本,因此不必每次都经过matplotlib site吗?

还是有任何更改,他们将很快对其进行更改?

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

2 个答案:

答案 0 :(得分:2)

这些数字实质上是为了向后兼容。 matplotlib文档中的大多数示例已被更改为使用文本格式。
对于文本,您只需要记住

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


您当然可以打印出这张小图片[*]

enter image description here

并将其固定在屏幕上。


更简洁的方法 将使用“ compass”符号,例如“ N”,“ NW”,“ SE”等。已经建议使用here。我现在提出了这样的解决方案in this pull request

答案 1 :(得分:2)

如果你绝望了,你可以做类似的事情

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

plt.legend(loc=locations[telephone_index])

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