Matplotlib手冊

plt.text添加文本註釋

參考:https://www.jianshu.com/p/3f2cba11b771
例如繪製如下圖片:
對比圖
生成這種帶字母的文本框真的讓我想半天,這提供一種思路,採用text文本註釋,但是沒有上述圖片那麼好看,讀者如果有更好的方法歡迎評論

plt.text(x, y , str , family=' ' , size= , color= ,style= , weight= , bbox=dict(facecolor= , alpha=0.2))

參數名 參數功能
x,y 設置文本的起始座標
str 文本的字符串內容
family 設置字體的樣式如宋體等
size 設置大小
color 設置顏色
style 設置樣式如傾斜
weight 設置粗體等款細
bbox 設置文本的邊框,在dict()中設置參數
facecolor設置邊框顏色,alpha設置透明度

具體參考手冊:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html#matplotlib.pyplot.text
參考代碼如下:

# -*- coding: UTF-8 -*-
import numpy as np
import matplotlib.pyplot as plt
 
N = 7 # 點的個數
x = [0.1,0.2,0.3,0.4,0.5,0.6,0.7]
y = [0.1,0.2,0.3,0.4,0.5,0.6,0.7]
n1 = ['A','B','C','D','E','F','G']

n = np.arange(7)

colors = np.random.rand(N) # 隨機產生50個0~1之間的顏色值
area = np.pi * (15 * np.array([0.5]*7))**2 

for i in range(7):
    plt.text(x[i],y[i], n1[i], size = 8,\
            family = "fantasy", color = "black", style = "italic", weight = "light",\
            bbox = dict(boxstyle="square",facecolor = "w", alpha = 1))

plt.show()

結果如下:
在這裏插入圖片描述

plt一圖多曲線繪製,添加圖例

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 數據老子瞎編的
N = 6
x = [12,85,85,28,182,172]
y = [25.1,28.0,29.9,28.8,33.2,36.2]
n1 = ['A','B','C','D','E','F']
# 數據老子瞎編的
plt.xlim((0,200))
plt.ylim((22,40))
for i in range(6):
    plt.text(x[i],y[i], n1[i], size = 10,\
            family = "fantasy", color = "black", style = "normal", weight = "black",\
            bbox = dict(boxstyle="square",facecolor = "w", alpha = 1))
plt.plot([22,29,51],[28.2,31.0,33],'gv',linestyle='-',label='YOLOv3')
plt.plot([64,72,98,121,153],[30.5,32.5,34.3,35.1,35.7],'bo',linestyle='-',label='RetinaNet-50')
plt.plot([35,50,65,80,125,160],[22.7,23.5,26,28.9,32.7,34.7],'c+',linestyle='-',label='Faster-RCNN')
plt.plot([15,30,45],[29.7,33.5,36,],'r*',linestyle='-',label='FuckNet')
# plt.legend(loc='upper left')
plt.legend()
plt.xlabel('inference time (ms)')
plt.ylabel('COCO AP')
ax = plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.savefig('fig1.pdf',bbox_inches = 'tight')
plt.show()

數據老子瞎編的
至於圖裏面插入表格的操作,我是真的不會,還沒搞定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章