matplotlib学习

导入

import matplotlib.pyplot as plt 
import random #后面需要用的random模块

绘制流程

创建画布

plt.figure(figsize=(3,3))

绘制图像

plt.plot([1,2,3,4],[7,8,6,6]) #参数x,y

还可以跟参数color和linestyle

显示图像

plt.show()

在这里插入图片描述

添加自定义x,y刻度

plt.xticks()
plt.yticks()

x=range(60)
y_sh=[random.uniform(15,18) for i in x] #随机产生15-18之间的数
plt.figure(figsize=(20,8))
plt.plot(x,y_sh)
x_ticks_label=['11点{}分'.format(i) for i in x]
y_ticks=range(40)
plt.xticks(x[::5],x_ticks_label[::5]) #间隔5显示,并用后面参数(字符串)替换前面参数的表示
plt.yticks(y_ticks[::5]) #用y_ticks来显示y的刻度
plt.show()

在这里插入图片描述

注意:若要解决中文显示问题,添加如下代码
1.查询当前系统所有字体

from matplotlib.font_manager import FontManager
import subprocess

mpl_fonts = set(f.name for f in FontManager().ttflist)

print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

2.修改为一个支持中文的字体(Arial Unicode MS是支持中文的)

plt.rc("font",family='Arial Unicode MS')

添加网格显示

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

linestyle是网格线的形态,其中- -表示虚线,alpha是网格线的透明度

添加描述信息(x轴,y轴名称以及标题)

plt.xlabel('时间')
plt.ylabel('温度')
plt.title('中午11点到12点温度曲线')

图像保存

注意:要在调用show方法之前调用,否则无法保存图片

plt.savefig('test.png')

显示图例

先加上label

y_bj=[random.uniform(1,3) for i in x]
plt.plot(x,y_sh,label='上海')
plt.plot(x,y_bj,color='r',linestyle='--',label='北京')

显示图例在最佳位置

plt.legend(loc='best') #也可以把参数写成loc=0

在这里插入图片描述

在多个坐标系下绘制多个图像

fig,axes=plt.subplots(nrows,ncols,figsize)

x=range(60)
y_sh=[random.uniform(15,18) for i in x]
y_bj=[random.uniform(1,3) for i in x]
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(20,8))

axes[0].plot(x,y_sh,label='上海')
axes[1].plot(x,y_bj,label='北京',color='r',linestyle='--')

x_ticks=['11点{}分'.format(i) for i in x]
y_ticks=range(40)
axes[0].set_xticks(x[::5],x_ticks[::5])
axes[0].set_yticks(y_ticks[::5])
axes[1].set_xticks(x[::5],x_ticks[::5])
axes[1].set_yticks(y_ticks[::5])

axes[0].grid(linestyle='--')
axes[1].grid(linestyle='--')

axes[0].set_xlabel('时间')
axes[0].set_ylabel('温度')
axes[0].set_title('中午11点--12点某城市温度变化图')
axes[1].set_xlabel('时间')
axes[1].set_ylabel('温度')
axes[1].set_title('中午11点--12点某城市温度变化图')

axes[0].legend(loc=0)
axes[1].legend(loc=0)

plt.show()

在这里插入图片描述

常见图形种类

折线图

plt.plot(x,y)

散点图

plt.scatter(x,y)

例子

x=[1,5,10]
y=[10,4,2]
plt.scatter(x,y)
plt.show()

在这里插入图片描述

柱状图

plt.bar(x,y,width,align='center')

x是传递的数据

例子

movie_n=['雷神4','神奇女侠','美国队长']
x=range(len(movie_n))
y=[76882,67211,23012]
plt.bar(x,y,width=0.5,color=['b','r','g'])
plt.xticks(x,movie_n)
plt.grid(linestyle='--')
plt.title('电影票房')
plt.show()

在这里插入图片描述

直方图

plt.hist(x,bins)

x是传递的数据,bins是指组数
例子

import numpy as np
x1=np.random.normal(1.75,1,100000000)
plt.hist(x1,1000)
plt.show()

在这里插入图片描述

饼图

plt.pie(x,labels,autopct,colors)

x是数量,labels是每部分名称,autopct是占比显示指定%1.2f%%

x=[1,2,3,4,5]
label=['class1','class2','class3','class4','class5']
explode=[0,0,0.1,0,0]
plt.figure(figsize=(20,8))
plt.pie(x,labels=label,autopct='%1.2f%%',explode=explode) #抽取第三块
plt.axis('equal') #让横轴竖轴等长
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醋酸洋红就是我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值