matplotlib绘制图像

matplotlib绘制图像

使用matplotlib绘制图像

import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
import numpy as np
import seaborn as sns #描绘曲线图,可以对通过np.percentile获得数据的百分位
def draw_percentile(x,y):
a=np.arange(0,1000)
#获得a中91%分位的数值
t=np.percentile(a,91)
print(t) # x、y是两个list
# 创建一个点数为 8 x 6 的窗口, 并设置分辨率为 80像素/每英寸
plt.figure(figsize=(16, 8), dpi=80)
# 再创建一个规格为 1 x 1 的子图
plt.subplot(1, 1, 1)
plt.title('voice length ratio ',fontsize=24)
#设置坐标轴字体的大小
plt.tick_params(axis='both', which='major', labelsize=14)
# 绘制曲线, 宽度为3,线的颜色为紫罗兰色
plt.plot(x, y, linewidth=3.0,color="#87CEFA")
#设置横坐标的标签范围
plt.xlim(0, 300)
# 设置横轴标签
plt.xlabel('voice length(s)',fontsize=14)
# 设置纵轴标签
plt.ylabel('ratio(%)',fontsize=14) # 把x轴的刻度间隔设置为20,并存在变量里
x_major_locator = MultipleLocator(20)
# 把y轴的刻度间隔设置为10,并存在变量里
y_major_locator = MultipleLocator(10) # ax为两条坐标轴的实例
ax = plt.gca() # 把x轴的主刻度设置为1的倍数
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator) plt.show() #绘制直方图的两种方式
def draw_data_distribution():
np.random.seed(444)
d = np.random.laplace(loc=15, scale=3, size=100) #绘制直方图,纵坐标对应的是频数
#bins设置分箱个数,可为 auto
number_bins, boundary_bins, patches = plt.hist(x=d, bins=10, color='#0504aa',
alpha=0.7, rwidth=0.85)
print('频数:',number_bins)
print('分箱边界:',boundary_bins)
plt.xlabel('data')
plt.ylabel('frequency')
plt.show() #单变量分布的直方图和kde同时绘制出来
sns.distplot(d,kde=True)
plt.xlabel('data')
plt.ylabel('kde Density')
plt.show() if __name__=='__main__': draw_data_distribution()
05-11 12:59