matplotlib.pyplot自定义图例

2024-09-30 16:33:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当拥挤的传说。我想把它弄轻一点。使用以下模拟数据:

import pandas as pd

Compact = pd.DataFrame(data=[['E',1,-20,0.02],
                             ['E',2,-21,0.025],
                             ['S',1,-19,0.015],
                             ['S',2,-19.3,0.012],
                             ['S0',1,-21.2,0.023],
                             ['S0',2,-20.7,0.013],
                             ['S0a',1,-21.5,0.017],
                             ['S0a',2,-20.1,0.026]
                            ],columns=['Morph','rank','R','z'])
Compact_left = pd.DataFrame(data=[['E',1,-19.8,0.023],
                                  ['E',2,-21.5,0.018],
                                  ['S',1,-18.9,0.015],
                                  ['S',2,-19.2,0.009],
                                  ['S0',1,-17.9,0.011],
                                  ['S0',2,-20.5,0.007],
                                  ['S0a',1,-17.8,0.008],
                                  ['S0a',2,-20.5,0.006]
                                 ],columns=['Morph','rank','R','z'])

我使用以下代码绘制数据:

^{pr2}$

根据我自己的数据,结果如下: enter image description here

正如你所见,这个传说太复杂了。我想创建一个自定义图例来解释:

  • 蓝色代表S,红色代表E,绿色代表S0,黄色代表其他
  • 三角形代表中心星系,圆形代表卫星
  • 完整的标记是被选中的星系,而空的则被放在一边

使用一种古老的语言,我可以做如下事情: enter image description here

这不是很漂亮,但就传说而言,效率更高一些。我试过各种各样的策略,但是我不能让Pyplot做一些干净的事情。我该怎么办?在


Tags: columns数据importdataframepandasdata代表事情