日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】绘图技巧:目标检测领域常见的折线图和散点图

發布時間:2024/3/26 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】绘图技巧:目标检测领域常见的折线图和散点图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 直接上圖
    • 要點解析
    • 折線對比圖
    • 散點對比圖

直接上圖



?

要點解析

  • 繪圖工具包:matplotlib
  • 英文及數學公式字體格式:Times New Roman
  • 中文字體格式:宋體(SimSun)
  • 其他的直接看代碼吧

?

折線對比圖

import matplotlib.pyplot as plt # 設置字體格式 from matplotlib import rcParams from matplotlib.ticker import MultipleLocatorsize = 14 # 全局字體大小 # 設置英文字體 config = {"font.family": 'serif',"font.size": size,"mathtext.fontset": 'stix',"font.serif": ['Times New Roman'], } rcParams.update(config) # 設置中文宋體 fontcn = {'family': 'SimSun', 'size': size} label_size = size text_size = size# 數據1 baseline_mAP = [36.4, 45.4, 53.9, 57.2, 58.0] baseline_param = [1.79, 7.07, 20.95, 46.2, 86.2]# 數據2 my_mAP = [39.9, 50.6, 56.2, 58.9, 59.8] my_param = [1.55, 6.09, 18.8, 42.7, 81.1]# 參數設置 lw = 2 ms = 8 my_text = ['N', 'S', 'M', 'L', 'X'] # 繪制 mAP-Param plt.figure(figsize=(6.4, 4.8)) plt.plot(my_param, my_mAP, label='紅色',c='r',lw=lw,marker='o',markersize=ms,ls='-') plt.plot(baseline_param, baseline_mAP, label='藍色',c='b',lw=lw,marker='*',markersize=ms,ls='--') plt.legend(loc='lower right', prop=fontcn) plt.ylabel('$M_\mathrm{mAP}$ (%)', fontsize=label_size) plt.xlabel('$N_\mathrm{Param}$ (M)', fontsize=label_size) # 設置坐標軸間隔 x_major_locator = MultipleLocator(10) y_major_locator = MultipleLocator(3.5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) plt.xlim([-3, 90]) plt.ylim([35, 62]) plt.text(my_param[0] - 3.5, my_mAP[0] + 0.8, my_text[0], color="k", fontsize=text_size) plt.text(my_param[1] - 2, my_mAP[1] + 0.8, my_text[1], color="k", fontsize=text_size) plt.text(my_param[2] - 2, my_mAP[2] + 0.8, my_text[2], color="k", fontsize=text_size) plt.text(my_param[3] - 3, my_mAP[3] + 1.0, my_text[3], color="k", fontsize=text_size) plt.text(my_param[4] - 2, my_mAP[4] + 0.8, my_text[4], color="k", fontsize=text_size) plt.grid(linestyle='--') plt.show()

?

散點對比圖

import matplotlib.pyplot as plt # 設置字體格式 from matplotlib import rcParams import matplotlib.patches as patchessize = 12 # 全局字體大小 # 設置英文字體 config = {"font.family": 'serif',"font.size": size,"mathtext.fontset": 'stix',"font.serif": ['Times New Roman'], } rcParams.update(config) # 設置中文宋體 fontcn = {'family': 'SimSun', 'size': size} label_size = size text_size = size # 數據 mAP = [36.9, 41.6, 38.5, 41.9, 45.9, 43.5, 45.4, 50.6] param = [9.36, 9.62, 27.2, 41.2, 69.0, 36.5, 7.07, 6.09] param2 = [i * 30 for i in param] FPS = [169.5, 61.0, 43.3, 9.5, 3.7, 15.0, 82.0, 53.8]# 繪制參數量標準 param_legend = [5, 15, 30, 50, 70] param_legend = [i * 30 for i in param_legend] param_x = [-10, 2.3, 20, 43, 71] param_y = [32.5, 32.5, 32.5, 32.5, 32.5] param_color = [(0.45, 0.45, 0.45)] * 5 param_text = ['5M', '15M', '30M', '50M', '70M']# 參數設置 lw = 2 ms = 15 my_text = ['Demo1', 'Demo2', 'Demo3','Demo4', 'Demo5', 'Demo6', '藍色', '紅色'] my_text2 = '-S' color = ['C8', 'C1', 'C0', 'C6', 'C4', 'C9', 'b', 'r']# 繪制 mAP-Param plt.figure() plt.scatter(FPS, mAP, s=param2, color=color, alpha=0.6) plt.scatter(param_x, param_y, s=param_legend, color=param_color, alpha=0.2)# 繪制矩形框 ax = plt.gca() rect = patches.Rectangle(xy=(-16, 30.3), width=103, height=5.8,linewidth=0.5, linestyle='-', fill=False, edgecolor='gray') ax.add_patch(rect)# 添加數學公式標簽 plt.ylabel('$M_\mathrm{mAP}$ (%)', fontsize=label_size) plt.xlabel('$N_\mathrm{FPS}$ (Frame/s)', fontsize=label_size) plt.xlim([-20, 200]) plt.ylim([30, 52.5])# 添加方法名 plt.text(FPS[0] - 9, mAP[0] + 0.9, my_text[0], color="k", fontsize=text_size) plt.text(FPS[1] - 10, mAP[1] + 0.8, my_text[1], color="k", fontsize=text_size) plt.text(FPS[2] - 11, mAP[2] + 1.4, my_text[2], color="k", fontsize=text_size) plt.text(FPS[3] - 11, mAP[3] - 2.2, my_text[3], color="k", fontsize=text_size) plt.text(FPS[4] - 11, mAP[4] + 2, my_text[4], color="k", fontsize=text_size) plt.text(FPS[5] - 6, mAP[5] + 1.5, my_text[5], color="k", fontsize=text_size)plt.text(FPS[6] - 9, mAP[6] + 0.8, my_text[6], color="k", fontdict=fontcn) plt.text(FPS[6] + 4.5, mAP[6] + 0.8, my_text2, color="k", fontsize=text_size)plt.text(FPS[7] - 9, mAP[7] + 0.8, my_text[7], color="k", fontdict=fontcn) plt.text(FPS[7] + 4.5, mAP[7] + 0.8, my_text2, color="k", fontsize=text_size)# 添加參數量標準大小 plt.text(param_x[0] - 5, 35, param_text[0], color="k", fontsize=text_size) plt.text(param_x[1] - 6, 35, param_text[1], color="k", fontsize=text_size) plt.text(param_x[2] - 7, 35, param_text[2], color="k", fontsize=text_size) plt.text(param_x[3] - 7, 35, param_text[3], color="k", fontsize=text_size) plt.text(param_x[4] - 7, 35, param_text[4], color="k", fontsize=text_size) plt.grid(linestyle='--') plt.show()

總結

以上是生活随笔為你收集整理的【Python】绘图技巧:目标检测领域常见的折线图和散点图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。