导包:

import matplotlib.pyplot as plt

中文包

plt.rcParams['font.sans-serif'] = ['SimHei']    # 如果是Mac本, 不支持SimHei的时候, 可以修改为 'Microsoft YaHei' 或者 'Arial Unicode MS'
plt.rcParams['axes.unicode_minus'] = False

折线图

创建画布

plt.figure(figsize=(), dpi=)
    figsize:指定图的长宽
    dpi:图像的清晰度
    返回fig对象

折线图:plt.plot(x, y)

显示:plt.show()

plt.figure(figsize=(5,5),dpi=100)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
plt.show()

辅助功能

刻度:

plt.xtick(刻度位置,刻度线的样式)

plt.ytick(刻度位置,刻度线的样式)

网格显示:

linestyle:网格的样式

appha:透明度

plt.grid(linestyle='--',appha=0.5)

添加标题:

plt.title(fontsize为大小)

添加x,y轴的标题

plt.xlabel

plt.ylabel
保存:

plt.savefig(路径)

例如:

# 生成画布
plt.figure(figsize=(20,5),dpi=80)
#生成值
x=range(60)
y_beijing=[random.uniform(15,18) for i in x]
#画图
plt.plot(x,y_beijing,color='red')
#刻度的样式 
x_label=[f'11点{i}分' for i in x]

y_label=range(40)
#加入刻度样式
plt.xticks(x[::5],x_label[::5])
plt.yticks(y_label[::5])
#网格显示
plt.grid(linestyle='--',alpha=0.5)
#添加标题
plt.title('北京11点的温度变化',fontsize=15)
#x,y轴
plt.xlabel('时间')
plt.ylabel('温度')
plt.show()
plt.savefig('1.png')

一个坐标系绘制多条线

图例:

plt.legend(loc=0)  0 为最合适的位置

共用一个x轴需要生成两个y轴的数据

需要加入两条折线

# 多图绘制
plt.figure(figsize=(18,5),dpi=100)
#数据生成
x=range(60)
y_beijing=[random.uniform(2,5) for i in x]
y_shanghai=[random.uniform(15,18) for i in x]
#加入数据和图例
plt.plot(x,y_beijing,color='red',label='北京',linestyle='--')
plt.plot(x,y_shanghai,color='blue',label='上海')
#刻度和标签
x_label=[f'11点{i}分' for i in x]
y_label=range(40)
#加入刻度和标签
plt.xticks(x[::5],x_label[::5])
plt.yticks(y_label[::5])
#显示网格
plt.grid(linestyle='--',alpha=0.5)
#添加标题
plt.title('北京和上海一小时的温度变化',fontsize=20)
#添加x和y轴的内容
plt.xlabel('时间',fontsize=15)
plt.ylabel('温度',fontsize=15)
#添加图例
plt.legend(loc=0)
plt.show()

显示多张图

plt.subplots这个函数会返回两个值第一个是整个图形对象第二个是子图对象(这个子图是一个数组所有可以通过索引回去相应的子图)nrows=1,ncols=2这个创建的是一行两列两个子图

分别实现子图一和子图二的的内容,刻度,图例和标题包括网格都需要进行创建

axes[0].plot(x,y_beijing,color='red',linestyle='--',label='北京')
axes[1].plot(x,y_shanghai,color='blue',label='上海')

例如:

fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(25,8),dpi=100)
#创建数据
x=range(60)
y_beijing=[random.uniform(2,5) for i in x]
y_shanghai=[random.uniform(15,18) for i in x]
#插入数据
axes[0].plot(x,y_beijing,color='red',linestyle='--',label='北京')
axes[1].plot(x,y_shanghai,color='blue',label='上海')
#创建刻度值
x_label=[f'11点{i}分' for i in x]
y_label=range(40)
# 插入刻度值
axes[0].set_xticks(x[::5],x_label[::5])
axes[0].set_yticks(y_label[::5])
axes[1].set_xticks(x[::5],x_label[::5])
axes[1].set_yticks(y_label[::5])
#插入图例和标题
axes[0].set_title('北京温度',fontsize=20)
axes[0].set_xlabel('时间',fontsize=15)
axes[0].set_ylabel('温度',fontsize=15)
axes[1].set_title('上海温度',fontsize=20)
axes[1].set_xlabel('时间',fontsize=15)
axes[1].set_ylabel('温度',fontsize=15)
#显示网格
axes[0].grid(linestyle='--',alpha=0.5)
axes[1].grid(linestyle=':',alpha=0.5)
#显示图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)
#显示图像
plt.show()

柱状图

使用 plt.bar(x,y)

# 绘制柱状图
plt.figure(figsize=(10,4), dpi=100)
#准备数据
x=['A','B','C','D']
y=[10,4,2,20]
#绘制柱状图
plt.bar(x,y)
#显示网格
plt.grid(linestyle='--',alpha=0.5)
#绘制标签和x,y轴
plt.title('柱状图',fontsize=20)
plt.xlabel('分类名',fontsize=12)
plt.ylabel('数量',fontsize=12)
plt.show()

直方图

plt.hist(数据,bins=显示多少个)

#绘制直方图
plt.figure(figsize=(10,4), dpi=100)
data=np.random.randn(500)
plt.hist(data,bins=50)
#显示网格
plt.grid(linestyle=':',alpha=0.5)
#绘制标签和x,y轴
plt.title('直方图',fontsize=20)
plt.show()

散点图

plt.scatter(x,y)

#绘制散点图
plt.figure(figsize=(10,4), dpi=100)
x=[1,2,3,4,5,6,7,8,9]
y=[12,13,14,15,16,17,18,19,20]
plt.scatter(x,y)
plt.grid(linestyle='--',alpha=0.5)
plt.title('散点图',fontsize=20)
plt.xlabel('x',fontsize=12)
plt.ylabel('y',fontsize=12)
plt.show()

饼图

plt.pie(数据,对应的图例,autopct=‘%1.1f%%’为百分号保留一位小数)

#饼图
plt.figure(figsize=(10,4), dpi=100)
x=[15,35,25,25]
y=['classA','classB','classC','classD']
plt.pie(x,labels=y,autopct='%1.1f%%')
plt.title('饼图')
plt.show()
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐