• Python Matplotlib legend函数:为每条折线添加图例


    对于复式折线图来说,应该为每条折线都添加图例,此时可以通过 legend() 函数来实现。

    对于该函数可传入两个 list 参数,其中第一个 list 参数(handles 参数)用于引用折线图上的每条折线;第二个 list 参数(labels)代表为每条折线所添加的图例。


    有什么python相关报错解答自己不会的、或者源码资料/模块安装/女装大佬精通技巧 都可以来这里:(https://jq.qq.com/?_wv=1027&k=dwzSWSBK)或者+V:python10010问我

    下面程序示范了为两条折线添加图例:

    在这里插入图片描述
    上面程序在调用 plot() 函数绘制折线图时,

    获取了该函数的返回值。

    由于该函数的返回值是一个列表,

    而此处只需要获取它返回的列表的第一个元素(第一个元素才代表该函数所绘制的折线图),

    因此程序利用返回值的序列解包来获取。

    上面程序中,第 11 行代码用于为 ln2、ln1 所代表的折线添加图例(按传入该函数的两个列表的元素顺序一一对应),

    其中 loc 参数指定图例的添加位置,该参数支持如下参数值:

    ‘best’:自动选择最佳位置。

    ‘upper right’:将图例放在右上角。

    ‘upper left’:将图例放在左上角。

    ‘lower left’:将图例放在左下角。

    ‘lower right’:将图例放在右下角。

    ‘right’:将图例放在右边。

    ‘center left’:将图例放在左边居中的位置。

    ‘center right’:将图例放在右边居中的位置。

    ‘lower center’:将图例放在底部居中的位置。

    ‘upper center’:将图例放在顶部居中的位置。

    ‘center’:将图例放在中心。

    运行上面程序,将会发现应程序并没有绘制图例,

    这是因为 Matplotlib 默认不支持中文字体。

    如果希望在程序中修改 Matplotlib 的默认字体,

    则可按如下步骤进行:

    使用 matplotlib.font_manager 子模块下的 FontProperties 类加载中文字体。

    在调用 legend() 函数时通过 prop 属性指定使用中文字体。

    将上面程序中第 11 行代码改为如下几行代码:

    在这里插入图片描述
    上面程序使用 FontProperties 类来加载 C:Windows\Fonts\simkai.ttf 文件所对应的中文字体,

    因此需要保证系统能找到该路径下的中文字体。

    再次运行上面程序,将看到如图 1 所示的效果。

    在这里插入图片描述
    在使用 legend() 函数时可以不指定 handles 参数,只传入 labels 参数,这样该 labels 参数将按顺序为折线图中的多条折线添加图例。因此,可以将上面第 5 行代码改为如下形式:

    plt.legend(labels=[‘Java基础’,‘Android基础’],

    loc=‘lower right’,prop=my_font)

    上面代码只指定了 labels 参数,该参数传入的列表包含两个字符串,其中第一个字符串将作为第一条折线(虚线)的图例,第二个字符串将作为第二条折线(短线、点相间的虚线)的图例。

    Matplotlib 也允许在调用 plot() 函数时为每条折线分别传入 label 参数,这样程序在调用 legend() 函数时就无须传入 labels、handles 参数了。例如如下程序:

    在这里插入图片描述
    上面程序在调用 plot() 函数时传入了 label 参数,这样每条折线本身己经具有图例了,因此程序在调用 legend() 函数生成图例时无须传入 labels 参数。

    正如从上面程序中所看到的,每次绘制中文内容时都需要设置字体,那么是否能改变 Matplotlib 的默认字体呢?答案是肯定的。在 Python 的交互式解释器中输入如下两行命令:

    import matplotlib

    matplotlib.matplotlib_fname()

    ‘D:\Python\Python36\lib\site-packages\matplotlib\mp1-data\matplotlibrc’

    其中 matplotlib_fname() 函数会显示 Matplotlib 配置文件的保存位置,此处显示该文件的存储路径为 D:\Python\Python36\lib\site-packages\matplotlib\mpl-data\matplotlibrc。打开该文件,找到如下这行代码:

    #font.family:sans-serif

    上面这行代码用于配置 Matplotlib 的默认字体,取消运行配置代码之前的注释符号(#),并将后面的 sans-serif 修改为本地己有的中文字体。例如使用微软雅黑字体,只要将上面的配置代码修改为如下形式即可:

    font.family: Microsoft YaHei

    通过上面设置,即可改变 Matplotlib 的默认字体,这样即可避免每次调用 legend() 函数时都需要额外指定字体。


    有什么python相关报错解答自己不会的、或者源码资料/模块安装/女装大佬精通技巧 都可以来这里:(https://jq.qq.com/?_wv=1027&k=dwzSWSBK)或者+V:python10010问我

    在这里插入图片描述

  • 相关阅读:
    Spring Cloud Netflix 之 Eureka
    【Spring boot】整合tomcat底层原理
    【技术积累】JavaScript中的函数【一】
    springboot毕设项目大学生在线课堂系统a57e3(java+VUE+Mybatis+Maven+Mysql)
    C++QT开发——QWidget
    S级猫主食冻干测评出来了:希喂、K9、朗诺实测分享
    网络安全(黑客)—2024自学
    新的职业已经出现,怎么能够停滞不前 ,人社部公布建筑新职业
    管控软件开发进度 4大关键项需要重视
    today‘s task
  • 原文地址:https://blog.csdn.net/xff123456_/article/details/126161699