plt自定义图例

1、不同自定义图例 

# 导入对应的模块
from matplotlib import lines
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

# 1、定义线图例
# 方法1
line1 = lines.Line2D([0], [0], label='line1', marker='o', lw=2, c='green')
# 方法2,注意别丢逗号
line2, = plt.plot([0], [0], label='line2', marker='X', lw=2, c='blue')

# 2、定义矩形图例
path1 = mpatches.Patch(color="red", label="patch")

# 3、定义散点图图例
s1 = plt.scatter([0], [0], label='scatter', marker='+')

# 4、显示图例
handles = [line1, path1, line2, s1]
fig, ax = plt.subplots(figsize=(6.4, 0.32))  # 根据行数更改0.32
# ax.legend(handles=handles, labels=["a","b","c","d"], mode="expand", ncol = 4, borderaxespad = 0) # mode='expand', 水平展示图例
ax.legend(handles=handles, mode="expand", ncol = 4, borderaxespad = 0)
ax.axis("off")  # 去掉坐标刻度
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的基础上操作即可创建组图的共享图例。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

labels = ['winter', 'spring', 'summer', 'autumn']
color = ['lightskyblue', 'lime', 'red', 'gold']

patches = [mpatches.Patch(color=color[i], label="{:s}".format(labels[i])) for i in range(len(color))]
ax = plt.gca()
# 下面一行中bbox_to_anchor指定了legend的位置
ax.legend(handles=patches, bbox_to_anchor=(0.95, 1.12), ncol=4)  # 生成legend
plt.show()

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要调节plt图例的字体大小,可以通过设置legend函数中的参数prop来实现。具体方法是在legend函数中添加prop={'size': 字体大小}。例如,可以使用以下代码调节图例的字体大小: plt.legend(prop={'size': 17}) 其中,17是指定的字体大小。你可以根据需要自行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在python plt图表中文字大小调节的方法](https://download.csdn.net/download/weixin_38737521/14873300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【数据处理】Python Matlibplot如何设置坐标轴字体大小?如何设置图例字体大小?](https://blog.csdn.net/weixin_39589455/article/details/125216877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [plt自定义图例](https://blog.csdn.net/qq_45100200/article/details/126366182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值