目录
1、绘制柱状图
2、绘制直方图
1、绘制柱状图
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm_notebook as tqdm
import warnings
warnings.filterwarnings("ignore")
from matplotlib.font_manager import FontProperties #设置汉字字体
#设置字体类型
from matplotlib import rcParams
config = {
"font.family":'Times New Roman', # 设置字体类型
# "font.size": 20,
# "mathtext.fontset":'stix',
}
rcParams.update(config)
#导入数据
data=open("H:/ihui_model.txt") #读取txt文件中的第一列,并存储在list1中
list1 = []
for line in data.readlines():
a = line[6:22]
list1.append(a)
#转换字符类型
test_result = np.array(list1)
test_result = test_result.astype(np.float64)
#绘图
%%time
x_y_ticks = 20
title_x_ylabel = 20
# r = np.arange(1,LBP_Radius_Max,LBP_Radius_Stride)
plt.figure(figsize=(8,5))
plt.bar(range(1,len(test_result)+1,1), test_result,width=0.5 ,color='lightseagreen' ) #画柱状图
plt.title('不同分割方法效果岩心结构提取效果',fontsize = title_x_ylabel , fontproperties="KaiTi") #设置标题
plt.ylabel("Mantel相关系数",fontsize = title_x_ylabel , fontproperties="KaiTi") #设置纵轴标题
plt.xlabel("分割算法序号",fontsize = title_x_ylabel , fontproperties="KaiTi") #设置横轴标题
plt.xticks((range(1,len(test_result)+1)), fontsize = x_y_ticks) #设置横轴坐标
plt.yticks(np.arange(0, 1.2, 0.1), fontsize = x_y_ticks) #设置纵轴坐标
for xx,yy in zip( range(1,9),test_result ): #给柱状图添加标注
plt.text(xx , yy+0.05 , str(yy)[0:5] , ha= 'center' , fontsize = 15)
plt.show()
2、绘制直方图
from skimage import feature
import skimage
import cv2
import numpy as np
from matplotlib import pyplot as plt
#读取图像
gray = cv2.imread('H:/shalestone512/shalestone_ihui_gray/shale10000.tif', cv2.IMREAD_GRAYSCALE)
#计算图像LBP
lbp_image = skimage.feature.local_binary_pattern(gray, 8, 1, method='default')
#绘制直方图
plt.subplot()
plt.title("LBP Histogram With R=1")
plt.hist(lbp_image.ravel(),256,[0,256])
plt.legend()
All_Image_LBPH = np.load('H:/shalestone512_data/shalestone_ihui_gray_data/All_Image_LBPH.npy')
test_result = All_Image_LBPH[1,1]#是一个256维的向量
hist = cv2.normalize(test_result,test_result)#归一化直方图
#绘图
plt.figure(figsize=(8,5))
plt.bar(range(1,len(hist)+1,1), hist,width=0.5 ,color='aqua' ) #画柱状图
plt.xticks((range(0,len(hist)+1,50))) #设置横轴坐标
plt.yticks()
plt.show()
|