使用matplotlib画直方图和概率密度图

    科技2024-07-19  69

    害,折腾了我好久

    1. 直方图和概率密度图叠加

    #python 画概率密度图 #-*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import seaborn as sns # 1)准备数据 lengths = [] with open("D:/length_analysis.tsv","r") as f: for l in f: if int(l.split('\t')[2])>80: continue lengths.append(int(l.split('\t')[2])//2) # 2)设置内置背景style plt.style.use('seaborn') # 添加网格显示 plt.grid(linestyle="-", alpha=0.5,linewidth=1.5) # 3)画图 bins=[0,5,10,15,20,25,30,35,40] sns.distplot(lengths, bins,hist=True,kde=True,color='royalblue') # 4)调整 # 修改x轴刻度显示 plt.xticks(range(0, 45)[::5] ,fontsize=10) # 修改刻度值大小 plt.tick_params(labelsize=13) # # 添加x, y轴描述信息 # # plt.xlabel("") # # plt.ylabel("") plt.show()

    2. 折线图

    import matplotlib.pyplot as plt # 2)设置内置背景style plt.style.use('seaborn') # 添加网格显示 plt.grid(linestyle="-", alpha=0.5,linewidth=1.5) #折线图 x = [u'<=5',u'5<l<=10',u'10<l<=15',u'15<l<=20',u'20<l<=25',u'25<l<=30',u'30<l<=35',u'35<l']#点的横坐标 k1 = [0.909090909, 0.853952395, 0.84803377, 0.834743006, 0.789830508, 0.773584906, 0.625, 0.285714286]#线1的纵坐标 k2 = [0.909090909, 0.888627681, 0.872250611, 0.860767729, 0.850847458, 0.849056604, 0.583333333, 0.714285714]#线2的纵坐标 k3 = [0.909090909, 0.889509257, 0.884692291, 0.869225764, 0.861016949, 0.849056604, 0.708333333, 0.571428571] for i in range(len(k1)): k1[i]*=100 k2[i]*=100 k3[i]*=100 plt.plot(x,k3,'s-',color = 'red',label="Bert + MS-SAN")#o-:圆形 plt.plot(x,k2,'o-',color = 'royalblue',label="MS-SAN")#o-:圆形 plt.plot(x,k1,'*-',color = 'limegreen',label="Bert-base")#s-:方形 plt.tick_params(labelsize=12) plt.xlabel("Avg_length(l)")#横坐标名字 plt.ylabel("ACC(%)")#纵坐标名字 plt.legend(loc = "best")#图例 plt.show()

    补充:

    mark '.' point marker ',' pixel marker 'o' circle marker 'v' triangle_down marker '^' triangle_up marker '<' triangle_left marker '>' triangle_right marker '1' tri_down marker '2' tri_up marker '3' tri_left marker '4' tri_right marker 's' square marker 'p' pentagon marker '*' star marker 'h' hexagon1 marker 'H' hexagon2 marker '+' plus marker 'x' x marker 'D' diamond marker 'd' thin_diamond marker '|' vline marker '_' hline marker

    2, color

    Processed: 0.009, SQL: 8