如何在Matplotlib中实现图例放大或设置粗边框?
调整Matplotlib图例大小与边框样式的简便方法
没问题,这两个需求都能轻松搞定!我结合你的柱状图代码给你具体演示怎么操作:
一、放大图例(调整文字大小)
想要放大图例里的文字,有两种常用方式:
- 直接在
plt.legend()中设置:通过fontsize参数指定字号,数值越大文字越大(默认一般是10,你可以根据需求调整) - 通过图例对象后续调整:先获取图例实例,再调用
set_fontsize()方法修改
示例代码(直接设置字号)
import numpy as np import matplotlib.pyplot as plt # 先定义示例随机整数(你替换成自己的即可) a,b,c,d,e = 10,20,15,25,30 f,g,h,i,j = 12,18,22,28,16 k,l,m,n,o = 8,24,19,21,26 group_a = (a,b,c,d,e) group_b = (f,g,h,i,j) group_c = (k,l,m,n,o) width = 0.2 x = np.arange(5) plt.bar(x-0.2, group_a, width, color = 'cyan') plt.bar(x, group_b, width, color = 'orange') plt.bar(x+0.2, group_c, width, color = 'green') plt.xticks(x, ['1','2','3','4','5']) plt.xlabel("quarter") plt.ylabel('%') # 设置图例文字大小为12,比默认更大 plt.legend(['Group A','Group B','Group C'], fontsize=12) print(f'Group A: {a},{b},{c},{d},{e}') print(f'Group B: {f},{g},{h},{i},{j}') print(f'Group C: {k},{l},{m},{n},{o}') plt.show()
如果需要后续调整,你可以改成这样:
# 先创建图例并获取对象 leg = plt.legend(['Group A','Group B','Group C']) # 再设置更大的字号,比如14 leg.set_fontsize(14)
二、设置图例边框为粗体(加粗边框)
要让图例边框变粗,核心是调整边框的线宽,同样有两种方式:
- 直接在
plt.legend()中设置:用edgewidth参数指定线宽,数值越大边框越粗 - 通过图例对象调整:调用
set_linewidth()方法,还能配合set_edgecolor()修改边框颜色
示例代码(同时设置放大和加粗边框)
import numpy as np import matplotlib.pyplot as plt # 示例随机整数 a,b,c,d,e = 10,20,15,25,30 f,g,h,i,j = 12,18,22,28,16 k,l,m,n,o = 8,24,19,21,26 group_a = (a,b,c,d,e) group_b = (f,g,h,i,j) group_c = (k,l,m,n,o) width = 0.2 x = np.arange(5) plt.bar(x-0.2, group_a, width, color = 'cyan') plt.bar(x, group_b, width, color = 'orange') plt.bar(x+0.2, group_c, width, color = 'green') plt.xticks(x, ['1','2','3','4','5']) plt.xlabel("quarter") plt.ylabel('%') # 同时设置图例文字放大(fontsize=12)和边框加粗(edgewidth=2) plt.legend(['Group A','Group B','Group C'], fontsize=12, edgewidth=2) print(f'Group A: {a},{b},{c},{d},{e}') print(f'Group B: {f},{g},{h},{i},{j}') print(f'Group C: {k},{l},{m},{n},{o}') plt.show()
如果想自定义边框颜色,比如改成深灰色,可以这样:
leg = plt.legend(['Group A','Group B','Group C']) leg.set_linewidth(3) # 边框线宽设为3 leg.set_edgecolor('#333333') # 设置深灰色边框
这样调整后,你就能得到文字放大、边框加粗的图例了,完全适配你的柱状图需求!
内容的提问来源于stack exchange,提问作者nji1997
相关产品推荐
相关产品推荐

