我想执行图中所示的图例类型.

这个数字我做了一些技巧只是为了表示我真正想要的东西,所以它没有很好地展示传奇中粉红色标记的颜色.

在图中,圆圈表示相同的参数,但是对于两个不同的模型;三角形和方形标记也是如此.我想将两个圆形标记放在图例的第一行中的相同参数上,类似地放在这个下面的两行上的其他标记上.谢谢.

码:

import matplotlib.pyplot as plt

q1 = [100.0, 60.0, 200.0, 300.0]

NO1 = [0.35799999999999998, 0.33100000000000002, 0.22900000000000001, 0.17799999999999999]

No1 = [0.34599999999999997, 0.29899999999999999, 0.20699999999999999, 0.14999999999999999]

Nb1 = [0.46600000000000003, 0.45600000000000002, 0.27800000000000002, 0.24399999999999999]

q2 = [60.0, 100.0, 200.0, 300.0]

NO2 = [0.44700000000000001, 0.29199999999999998, 0.28299999999999997, 0.253]

No2 = [0.38900000000000001, 0.28499999999999998, 0.311, 0.251]

Nb2 = [0.44, 0.34899999999999998, 0.45900000000000002, 0.39400000000000002]

fig, ax = plt.subplots(figsize = (6,3))

ax.plot(q1, NO1, marker = 'o', markerfacecolor = 'none', markeredgewidth = 1, color = 'gray', linestyle = '', markersize = 8, label = '$N$in parameter a')

ax.plot(q2, NO2, marker = 'o', markerfacecolor = 'none', markeredgewidth = 1, color = 'palevioletred', linestyle = '', markersize = 8)#, label = '$N$in parameter a')

ax.plot(q1, No1, marker = '^', markerfacecolor = 'none', markeredgewidth = 1, color = 'gray', linestyle = '', markersize = 8, label = '$N$in parameter b')

ax.plot(q2, No2, marker = '^', markerfacecolor = 'none', markeredgewidth = 1, color = 'palevioletred', linestyle = '', markersize = 8)#, label = '$N$in parameter b')

ax.plot(q1, Nb1, marker = 's', markerfacecolor = 'none', markeredgewidth = 1, color = 'gray', linestyle = '', markersize = 8, label = '$N$in parameter c')

ax.plot(q2, Nb2, marker = 's', markerfacecolor = 'none', markeredgewidth = 1, color = 'palevioletred', linestyle = '', markersize = 8)#, label = '$N$in parameter c')

#plt.legend(loc='upper right', bbox_to_anchor=(0.945, 1))

plt.xlabel('x')

plt.ylabel('$N$')

plt.xticks([60, 100, 200, 300])

plt.minorticks_on()

plt.tick_params(direction = 'in', bottom = True, top = True, left = True, right = True, which = 'major')

plt.tick_params(direction = 'in', bottom = False, top = False, left = True, right = True, which = 'minor')

解决方法:

您可以使用HandlerTuple处理程序并提供艺术家的元组,以在每行中显示为图例的句柄.

import matplotlib.pyplot as plt

import matplotlib.legend_handler

q1 = [100.0, 60.0, 200.0, 300.0]

NO1 = [0.358, 0.331, 0.229, 0.178]

No1 = [0.346, 0.299, 0.207, 0.15]

Nb1 = [0.466, 0.456, 0.278, 0.244]

q2 = [60.0, 100.0, 200.0, 300.0]

NO2 = [0.447, 0.292, 0.283, 0.253]

No2 = [0.389, 0.285, 0.311, 0.251]

Nb2 = [0.44, 0.349, 0.459, 0.394]

fig, ax = plt.subplots(figsize = (6,3))

prop = dict(markerfacecolor = 'none', markeredgewidth = 1,

linestyle = '', markersize = 8,)

l1, = ax.plot(q1, NO1, marker = 'o', color = 'gray', label = '$N$in parameter a', **prop)

l2, = ax.plot(q2, NO2, marker = 'o', color = 'palevioletred', **prop)

l3, = ax.plot(q1, No1, marker = '^', color = 'gray', label = '$N$in parameter b', **prop)

l4, = ax.plot(q2, No2, marker = '^', color = 'palevioletred', **prop)

l5, = ax.plot(q1, Nb1, marker = 's', color = 'gray', label = '$N$in parameter c', **prop)

l6, = ax.plot(q2, Nb2, marker = 's', color = 'palevioletred', **prop)

handles = [(l1,l2), (l3,l4), (l5,l6)]

_, labels = ax.get_legend_handles_labels()

ax.legend(handles = handles, labels=labels, loc='upper right',

handler_map = {tuple: matplotlib.legend_handler.HandlerTuple(None)})

plt.xlabel('x')

plt.ylabel('$N$')

plt.show()

标签:python,matplotlib,legend

python图例重复显示_python – 具有两个标记的多行的自定义图例,用于相同的文本...相关推荐

  1. python图例重复显示_python matplotlib图例重复

    我有一个直方图的子图.这个plt.图例在底部创建了一个颜色重复的图例.在这部分子图的截图中 "唤醒"与"睡眠-快速眼动"是同一颜色 {1美元^ 如何更改图形和图 ...

  2. python画图marker显示_python matplotlib 画图刻度、图例等字体、字体大小、刻度密度、线条样式设置...

    设置输出的图片大小: figsize = 11,9 figure, ax = plt.subplots(figsize=figsize) 画简单的折线图,同时标注线的形状.名称.粗细: A,=plt. ...

  3. python sql语句换行_python一行sql太长折成多行并且有多个参数的方法

    python一行sql太长折成多行并且有多个参数 sql语句本身就支持多行, 你可以用两种方法断行 注意: 第一种会带入换行符(\n), 第二种只是一行 a='''xxxx本身也可以作为注释使用xxx ...

  4. python绘制折线图中文图例不显示_python使用matplotlib绘图时图例显示问题的解决...

    前言 matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.在使用Python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图 ...

  5. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  6. python图例重复显示_matplotlib中的图例中有重复项?

    下面是一种在正常分配标签后删除重复图例项的方法:representatives=[[[-100,40],[-50,20],[0,0],[75,-5],[100,5]], #made up some d ...

  7. python判断是否有重复单词_Python判断两个单词的相似度

    本文要点在于算法的设计:如果两个单词中不相同的字母足够少,并且随机选择几个字母在两个单词中具有相同的前后顺序,则认为两个单词是等价的. 目前存在的问题:可能会有误判. from random impo ...

  8. python绘制折线图中文图例不显示_python plb 教程 实现折线图 (令含有 题目,标识,颜色,中文乱码解决)源码...

    1 #-*- coding: utf-8 -*- 2 importnumpy as np3 importmatplotlib.pyplot as plt4 importmatplotlib as mp ...

  9. python图例重复显示_matplotlib中的legend()——用于显示图例

    Keyword Description loc a location code prop the font property (matplotlib.font_manager.FontProperti ...

最新文章

  1. python学习音频-Python学习笔记--音频处理
  2. 【DIY】可能是最简单便宜的DIY温湿度计,arduino温湿度计
  3. Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
  4. 5 微信公众号开发 获取 access_token
  5. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...
  6. LeetCode4 寻找两个正序数组的中位数
  7. 100小时学习SAP之自学环境(一)
  8. 【Ad Hoc】贰 AODV 协议详解
  9. thinkphp5 模板使用php,模板 · ThinkPHP5.1完全开发手册 · 看云
  10. Flash影片剪辑的属性、深度及动态控制
  11. PostgreSQL 执行计划与实际成本的偏差
  12. 自动排课系统V2.0基本完善了
  13. 用pygame做一个简单的python小游戏---生命游戏
  14. React中input输入框中文输入的问题
  15. 【DEBUG】mxs-auart mxs-auart.0: Unhandled status 520080
  16. lv_canvas 画布
  17. Kubectl(完整)基本操作命令
  18. 计算机音乐技术的发展,计算机网络技术对音乐发展的影响探析
  19. 计算机l特键,计算机(下排键的指法教学、图片的l拉伸、扭曲).doc
  20. win7安装Scrapy时报错Failed building wheel for Twisted

热门文章

  1. ex28 布尔表达式练习
  2. MongoDB 数据恢复与导出
  3. 使用Travis CI自动部署Hexo博客
  4. Innobackupx工具命令简单解析
  5. MRC与ARC混合编程的编译器标记
  6. 2009 managertool software download..........
  7. 心理学Notes:常用心理测量工具的选择
  8. 计算机网络即时通信系统设计_天天玩微信,Spring Boot 开发私有即时通信系统了解一下...
  9. 让人头皮发麻的KMP的next函数 困扰我三四天后终于解决了
  10. 安装php 端口被占用,安装phpstudy,APMServ启动服务提示80端口被占用