当前位置:   article > 正文

plt自定义图例_plt图例

plt图例

1、不同自定义图例 

  1. # 导入对应的模块
  2. from matplotlib import lines
  3. import matplotlib.pyplot as plt
  4. import matplotlib.patches as mpatches
  5. # 1、定义线图例
  6. # 方法1
  7. line1 = lines.Line2D([0], [0], label='line1', marker='o', lw=2, c='green')
  8. # 方法2,注意别丢逗号
  9. line2, = plt.plot([0], [0], label='line2', marker='X', lw=2, c='blue')
  10. # 2、定义矩形图例
  11. path1 = mpatches.Patch(color="red", label="patch")
  12. # 3、定义散点图图例
  13. s1 = plt.scatter([0], [0], label='scatter', marker='+')
  14. # 4、显示图例
  15. handles = [line1, path1, line2, s1]
  16. fig, ax = plt.subplots(figsize=(6.4, 0.32)) # 根据行数更改0.32
  17. # ax.legend(handles=handles, labels=["a","b","c","d"], mode="expand", ncol = 4, borderaxespad = 0) # mode='expand', 水平展示图例
  18. ax.legend(handles=handles, mode="expand", ncol = 4, borderaxespad = 0)
  19. ax.axis("off") # 去掉坐标刻度
  20. plt.show()

2、plt.legend() 参数

  • loc:图例位置,可取(‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’) ;若是使用了bbox_to_anchor,则这项就无效了
  • fontsize:int或float或{‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’},字体大小;
  • frameon:是否显示图例边框,
  • ncol:图例的列的数量,默认为1,
  • title:为图例添加标题
  • shadow:是否为图例边框添加阴影,
  • markerfirst:True表示图例标签在句柄右侧,false反之,
  • markerscale:图例标记为原图标记中的多少倍大小,
  • numpoints:表示图例中的句柄上的标记点的个数,一般设为1,
  • fancybox:是否将图例框的边角设为圆形
  • framealpha:控制图例框的透明度
  • borderpad:图例框内边距
  • labelspacing图例中条目之间的距离
  • columnspacing=0.4: 调整图例中不同列之间的间距
  • labels= Label_Com设置图例中的名称
  • scatterpoints=1设置图例中对应图像只出现一次
  • handletextpad=0.1:用此参数调节图例和标签之间的距离
  • handlelength:图例句柄的长度
  • bbox_to_anchor:(横向看右num1,纵向看下num2),‘num1’用于控制legend的左右移动,值越大,越向右边移动, ‘num2’用于控制legend的上下移动,值越大,越向上移动。如果要自定义图例位置或者将图例画在坐标外边,用它,比如bbox_to_anchor=(1.4,0.8),这个一般配合着ax.get_position()set_position([box.x0, box.y0, box.width*0.8 , box.height])使用。用不到的参数可以直接去掉,有的参数没写进去,用得到的话加进去 , bbox_to_anchor=(1.11,0)。如果使用ax.legend的话,需在它之前加一句:ax = plt.gca() #返回坐标轴
plt.legend(scatterpoints=1,labels = Label_Com, labelspacing=0.4,columnspacing=0.4,markerscale=2,bbox_to_anchor=(0.9, 0),ncol=12,prop=font1,handletextpad=0.1)

3、组图共享图例

 即先创建一个ax = plt.gca(),在ax的基础上操作即可创建组图的共享图例。

  1. import matplotlib.pyplot as plt
  2. import matplotlib.patches as mpatches
  3. labels = ['winter', 'spring', 'summer', 'autumn']
  4. color = ['lightskyblue', 'lime', 'red', 'gold']
  5. patches = [mpatches.Patch(color=color[i], label="{:s}".format(labels[i])) for i in range(len(color))]
  6. ax = plt.gca()
  7. # 下面一行中bbox_to_anchor指定了legend的位置
  8. ax.legend(handles=patches, bbox_to_anchor=(0.95, 1.12), ncol=4) # 生成legend
  9. plt.show()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/270691
推荐阅读
相关标签
  

闽ICP备14008679号