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

害,折腾了我好久

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()

在这里插入图片描述

补充:

  1. 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

**在这里插入图片描述**

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值