画四个指标的learning curve

# -*- coding: utf-8 -*-
"""
Created on Sat Dec  5 09:42:05 2020@author: 姜金
"""import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as gridspec
from matplotlib.ticker import FuncFormatterdef to_percent(temp, position):return '%1.0f'%(10*temp) + '%'p_10 = [0.5490909090909091, 348, 294, 202, 256]
p_20 = [0.5854545454545454, 443, 349, 107, 201]
p_30 = [0.7045454545454546, 489, 264, 61, 286]
p_40 = [0.7145454545454546, 494, 258, 56, 292]
p_50 = [0.6727272727272727, 508, 318, 42, 232]
p_60 = [0.7363636363636363, 511, 251, 39, 299]
p_70 = [0.76, 515, 229, 35, 321]
p_80 = [0.7754545454545455, 497, 194, 53, 356]
p_90 = [0.7781818181818182, 499, 193, 51, 357]
p_100 = [0.769090909090909, 502, 206, 48, 344]
#5 EPOCHdef metrics_comput(p):acc = p[0]TP = p[1]FP = p[2]FN = p[3]
#    TN = p[4]P = TP/(TP+FP)R = TP/(TP+FN)F1 = 2*P*R/(P+R)return acc, P, R, F1#plt.figure()
plt.figure(figsize=(10,8))x_data = np.arange(10)
gs = gridspec.GridSpec(2,2) #将绘图区分成两行三列
ax1 = plt.subplot(gs[0,0])#指定ax1占用第一行(0)整行
ax2 = plt.subplot(gs[0,1])#指定ax1占用第一行(0)整行
ax3 = plt.subplot(gs[1,0])#指定ax2占用第二行(1)的第一格(第二个参数为0)
ax4 = plt.subplot(gs[1,1])#指定ax3占用第二行(1)的第二、三格(第二个参数为1:3)y1 = 100*np.array([metrics_comput(p_10)[0],metrics_comput(p_20)[0],metrics_comput(p_30)[0],metrics_comput(p_40)[0],metrics_comput(p_50)[0],metrics_comput(p_60)[0],metrics_comput(p_70)[0],metrics_comput(p_80)[0],metrics_comput(p_90)[0],metrics_comput(p_100)[0]])
y11 = np.array([1,2,3,4,5,6,7,8,9,10])*10
ax1.plot(x_data,y1,label='single')
ax1.plot(x_data,y11,label='pairing')
ax1.legend()
ax1.set_xlabel('#Percentage of sentences')
ax1.set_ylabel('Accuracy(%)')
ax1.xaxis.set_major_formatter(FuncFormatter(to_percent))y2 = 100* np.array([metrics_comput(p_10)[1],metrics_comput(p_20)[1],metrics_comput(p_30)[1],metrics_comput(p_40)[1],metrics_comput(p_50)[1],metrics_comput(p_60)[1],metrics_comput(p_70)[1],metrics_comput(p_80)[1],metrics_comput(p_90)[1],metrics_comput(p_100)[1]])
y22 = np.array([1,2,3,4,5,6,7,8,9,10])*10
ax2.plot(x_data,y2,label='single')
ax2.plot(x_data,y22,label='pairing')
ax2.legend()
ax2.set_xlabel('#Percentage of sentences')
ax2.set_ylabel('Precision(%)')ax2.xaxis.set_major_formatter(FuncFormatter(to_percent))y3 = 100*np.array([metrics_comput(p_10)[2],metrics_comput(p_20)[2],metrics_comput(p_30)[2],metrics_comput(p_40)[2],metrics_comput(p_50)[2],metrics_comput(p_60)[2],metrics_comput(p_70)[2],metrics_comput(p_80)[2],metrics_comput(p_90)[2],metrics_comput(p_100)[2]])
y33 = np.array([1,2,3,4,5,6,7,8,9,10])*10
ax3.plot(x_data,y3,label='single')
ax3.plot(x_data,y33,label='pairing')
ax3.legend()
ax3.set_xlabel('#Percentage of sentences')
ax3.set_ylabel('Recall(%)')
ax3.xaxis.set_major_formatter(FuncFormatter(to_percent))y4 = 100* np.array([metrics_comput(p_10)[3],metrics_comput(p_20)[3],metrics_comput(p_30)[3],metrics_comput(p_40)[3],metrics_comput(p_50)[3],metrics_comput(p_60)[3],metrics_comput(p_70)[3],metrics_comput(p_80)[3],metrics_comput(p_90)[3],metrics_comput(p_100)[3]])
y44 = np.array([1,2,3,4,5,6,7,8,9,10])*10
ax4.plot(x_data,y4,label='single')
ax4.plot(x_data,y44,label='pairing')
ax4.legend()
ax4.set_xlabel('#Percentage of sentences')
ax4.set_ylabel('F1(%)')
ax4.xaxis.set_major_formatter(FuncFormatter(to_percent))plt.xlabel('training examples')
plt.tight_layout()
plt.show()

fantastic-matplotlib:案例集合:相关推荐

  1. python爬虫案例-Python爬虫案例集合

    原标题:Python爬虫案例集合 urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里 ...

  2. Database之SQLSever:SQL命令实现的高级案例集合之单表/多表(筛选、统计个数)之详细攻略

    Database之SQLSever:SQL命令实现的高级案例集合之单表/多表(筛选.统计个数)之详细攻略 目录 一.sql实现筛选 1.单个表筛选 1.1.简单筛选 1.2.嵌套筛选

  3. TF学习:Tensorflow基础案例、经典案例集合——基于python编程代码的实现

    TF学习:Tensorflow基础案例.经典案例集合--基于python编程代码的实现 目录 Tensorflow的使用入门 1.TF:使用Tensorflow输出一句话 2.TF实现加法 3.TF实 ...

  4. python爬虫入门 - 代码、案例集合

    python爬虫入门 - 代码.案例集合 资源案例 · 统计 · 如下: 10个Python爬虫入门实例 以上就是关于"python爬虫入门 - 代码.案例集合"的全部内容.

  5. DBMS/Database:数据库管理的简介、安装(注意事项等)、学习路线(基于SQLSever深入理解SQL命令语句综合篇《初级→中级→高级》/几十项代码案例集合)之详细攻略

    DBMS/Database:数据库管理的简介.安装(注意事项等).学习路线(基于SQLSever深入理解SQL命令语句综合篇<初级→中级→高级>/几十项代码案例集合)之详细攻略 目录 DB ...

  6. Auto CAD:CAD三维建模设计之常用工具之放样图文教程案例集合(不规则截面路径放样设计香蕉造型和电吹风外壳造型、导向放样设计茶壶造型和苹果造型)

    Auto CAD:CAD三维建模设计之常用工具之放样图文教程案例集合(不规则截面路径放样设计香蕉造型和电吹风外壳造型.导向放样设计茶壶造型和苹果造型) 目录 CAD三维建模设计之常用工具之放样图文教程 ...

  7. Python语言学习:Python语言学习之正则表达式常用函数之re.search方法【输出仅一个匹配结果(内容+位置)】、re.findall方法【输出所有匹配结果(内容)】案例集合之详细攻略

    Python语言学习:Python语言学习之正则表达式常用函数之re.search方法[输出仅一个匹配结果(内容+位置)].re.findall方法[输出所有匹配结果(内容)]案例集合之详细攻略 导读 ...

  8. Data Analysis - Day2 - Matplotlib 案例

    文章目录 散点图案例: 北京2016年3月 和10月 最高气温, 找出气温随时间变化的规律 条形图案例1: 2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b) 条形图案例2: 列表a ...

  9. 第2节课Matplotlib案例及作业

    首先,全局引入需要的库和字体设置 import random from matplotlib import pyplot as plt import matplotlib font = { 'fami ...

  10. 整理了 65 个 Matplotlib 案例,这能不收藏?

    作者|周萝卜 来源|萝卜大杂烩 Matplotlib 作为 Python 家族当中最为著名的画图工具,基本的操作还是要掌握的,今天就来分享一波 文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到 ...

最新文章

  1. Prepare for Android
  2. 安卓完全退出程序的六种方法(欢迎新手学习,大手指导)
  3. 你知道这些产品设计灵感网站吗?
  4. 【Java基础】HashMap原理详解
  5. java jpanel 分层显示_java – 向JPanel显示视频
  6. 无聊玩玩俄罗斯方块,用python自己做不带广告
  7. eclipejsp与java跳转_JSP跳转方式与Servlet跳转方式的区别
  8. Leetcode639. Decode Ways II
  9. Nagios安装配置教程(二)环境搭建
  10. ESX的VSWITCH坏了,如何转移到新建的虚拟交换机上?
  11. OpenCV入门教程
  12. 两平面平行方向向量关系_空间向量,如果一条直线与一平面平行,那么直线的方向向量与平面的法向量有什么关系??垂直呢?...
  13. matlab计算电磁场程序,电磁场与波:电磁材料及MATLAB计算
  14. 183名中国学者入选2016全球高引作者榜 | 数据分析
  15. Linux 配置网络案例
  16. USB转串口驱动分析(一)
  17. GPS北斗模块串口助手输出测试
  18. 呼吁重视孩子写字姿势
  19. 交换瓶子-JavaA
  20. 约瑟夫环数据结构c语言程序,约瑟夫环问题详解(C语言链表实现)

热门文章

  1. JSON.stringify(value [, replacer] [, space])
  2. 命名空间“xxx”中不存在类型或命名空间名“xxx”(是否缺少程序集引用)
  3. mysql中标识列是什么意思_数据库标识列是什么意思
  4. Chrome屏蔽广告
  5. git flow操作步骤
  6. 两人分组问题:显示In function 'int main()'求大佬解惑
  7. C++ 解析器--cint
  8. drawline java_Java代码g.drawLine(100,100,100,100)的功能是()
  9. CLM陆面过程模式实践技术
  10. 360°视频论文调研