IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用matplotlib绘制范围波动曲线图 -> 正文阅读

[人工智能]使用matplotlib绘制范围波动曲线图

使用matplotlib绘制范围波动曲线

??论文在做数据分析时,经常需要绘制曲线图,例如对不同的超参数对应的实验性能变化。由于实际实验需要重复执行多次并获取均值和波动范围,需要同时在曲线图中展示。本文介绍并提供使用基于matplotlib绘制简单精美的曲线图。

??展示预期效果,例如给出两个方法在不同训练样本数量条件下的准确率变化情况:

图像特点:

  • 可对比多个不同的方法,不同方法的使用不同颜色、类型的曲线进行绘制;
  • 可展示每个方法对应的极差波动范围,以展示不同方法的稳定程度;
  • 横坐标部分为2倍指数递增;

对应代码:

import numpy as np
import sys
import sklearn
from sklearn import metrics
import matplotlib
matplotlib.use('agg')
from matplotlib import pyplot as plt

plt.figure(figsize=(6, 5)) # 设置整个图像的尺寸(长高分别为6、5个单位)
plt.title("Dataset", size = 24) # 设置标题以及大小
models = ['Baseline', 'Our Proposal'] # 定义好所有模型名称
cnt = 0
maker = ['^','s'] # 曲线标记
x = [16, 32, 64, 128, 256, 512] # 作为横轴
x_names = ['16', '32', '64', '128', '256', '512'] # 横轴展示的值
results = { # 用于展示每个方法的曲线
    'Baseline': [81.42, 88.19, 90.94, 92.55, 93.58, 94.27],
    'Our Proposal': [93.46, 92.55, 92.67, 94.50, 95.07, 95.18]
}
ranges_top = { # 用于展示每个方法的上界
    'Baseline': [85.32, 89.65, 91.66, 92.89, 93.92, 94.61],
    'Our Proposal': [93.98, 93.46, 93.00, 94.84, 95.30, 95.30]
}
ranges_bottom = { # 用于展示每个方法的下界
    'Baseline': [76.26, 86.50, 90.13, 92.20, 93.35, 94.04],
    'Our Proposal': [92.89, 91.98, 92.32, 94.21, 94.95, 95.07]
}
for model_name in models:
    y = np.array(results[model_name]).astype(np.float) # 每个方法的值
    y1 = np.array(ranges_top[model_name]).astype(np.float) # 每个方法的上界
    y2 = np.array(ranges_bottom[model_name]).astype(np.float) # 每个方法的下界
    makevery =1
    plt.xscale("log", base=2) # 设置横轴为2倍指数递增
    plt.plot(x, y, label=model_name, linewidth=2, marker=maker[cnt], markevery=makevery, markersize=6) # 绘制当前模型的曲线
    # 填充上下界区域内,设置边界、填充部分颜色,以及透明度
    plt.fill_between(x, y1, y2, #上限,下限
        # facecolor='green', #填充颜色
        # edgecolor='red', #边界颜色
        alpha=0.3
    ) #透明度
    plt.xlabel("#Training (K)",fontsize=18)
    plt.ylabel("Accuracy (%)",fontsize=18)
    plt.ylim([70.0, 100.0]) # 设置纵轴大小范围
    plt.xticks(x, x_names, rotation=0, size = 20) # 设置横轴坐标轴刻度,文字大小为20
    plt.yticks(np.arange(70, 100, 5), rotation=0, size = 20) # 设置纵轴坐标轴刻度(70-100,每隔5个单位绘制刻度),文字大小为20
    cnt+=1
font1 = {
    'weight' : 'normal',
    'size'   : 22,
}
plt.legend(loc = "lower right", prop=font1) # 设置信息框
plt.grid(False) # 不显示网格线
ax=plt.gca()  #gca:get current axis得到当前轴
# 设置图像的边框颜色
ax.spines['right'].set_color('#ccc')
ax.spines['top'].set_color('#ccc')
ax.spines['left'].set_color('#ccc')
ax.spines['bottom'].set_color('#ccc')
# 设置图像的边框粗细程度
ax.spines['right'].set_linewidth('2.0')
ax.spines['top'].set_linewidth('2.0')
ax.spines['left'].set_linewidth('2.0')
ax.spines['bottom'].set_linewidth('2.0')
# 保存图像
plt.savefig("./"+'show.png', dpi=120, bbox_inches='tight')
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:19:21  更:2021-11-29 16:21:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:45:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码