matplotlib学习笔记

matplotlib三层结构
画板层(Canvas)
画布层(Figure):plt.figure()
绘图区/坐标去 Axes:plt.subplots()

例子:展现一周的天气,从周一到周日天气温度
1.创建画布
plt.figure(figsize=(), dpi=)
figsize:指定图的长款
dpi:图像的清晰度dot per inch
plt.savefig(path)
2.绘制图像
plt.plot([1,2,3,4,5,6,7],[17,16,18,20,19,20,22])
3.显示图像
plt.show() 会释放figure资源,如果在显示图像之后保存图片plt.savefig(path),将智能保存空图片
显示刻度:
plt.xticks(x, **arg)
plt.yticks(y, **arg)
在这里插入图片描述
中文显示问题解决
from pylab import mpl
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
1.安装字体
在这里插入图片描述
2.删除matplot缓存文件
3.配置文件
中文显示问题:输入代码解决最方便
from pylab import mpl
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
在这里插入图片描述

添加网格显示
plt.grid(True, linestyle="–", alpha=0.5) alpha为透明度
添加描述信息
plt.title(“某某城市中午十一点到十二点之间的温度变化图示”)
在这里插入图片描述
完善原始折线图
再添加一个城市的温度变化
准备北京的数据

显示标注plt.legend(loc = “best”)
在这里插入图片描述
在这里插入图片描述

多个坐标系显示-plt.subplots(面向对象画图方法)
figure,axes = matplotlib.pyplot.subplots(nrows=1,ncols=1,**fig_kw)创建一个带有多个axe(坐标系/绘图区)的图
axes[0].方法名去调用
axes[1].方法名
plt.函数名()相当于面向过程的画图方法,axes.set_方法名()相当于面向对象的画图方法。

from pylab import mpl
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
#1 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]
#2 创建画布
#plt.figure(figsize=(20, 8), dpi=80)
figure, axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=80)
#3 绘制图像
axes[0].plot(x,y_shanghai,color=“r”,linestyle="-.",label=“上海”)
axes[1].plot(x,y_beijing,color=“b”,linestyle="-",label=“北京”)
#4 显示图像
axes[0].legend()
axes[1].legend()

#刻度修改
x_label = [“11点{}分”.format(t) for t in x]
axes[0].set_xticks(x[::5], x_label[::5])
axes[0].set_yticks(range(0, 40, 5))
axes[1].set_xticks(x[::5], x_label[::5])
axes[1].set_yticks(range(0, 40, 5))
#添加网格显示
axes[0].grid(True, linestyle="–",alpha=0.5)
axes[1].grid(True, linestyle="–",alpha=0.5)
#添加描述信息
axes[0].set_xlabel(“时间变化”)
axes[0].set_ylabel(“温度变化”)
axes[0].set_title(“上海十一点到十二点温度变化状况”)
axes[1].set_xlabel(“时间变化”)
axes[1].set_ylabel(“温度变化”)
axes[1].set_title(“北京十一点到十二点温度变化状况”)
#显示图
plt.show()
在这里插入图片描述
将上部分修改部分代码显示不同#刻度修改
x_label = [“11点{}分”.format(t) for t in x]
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_label[::5])
axes[0].set_yticks(range(0, 40, 5))
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_label[::5])
axes[1].set_yticks(range(0, 40, 5))
在这里插入图片描述
折线图的应用场景
看某事物、某指标随时间的变化状况
plt.plot()除了可以画折线图,也可以用于画各种数学函数图像
在这里插入图片描述
散点图(scatter)
探究不同变量之间的内在关系
plt.scatter(x,y)
柱状图(bar)
统计/对比
matplotlib.pyplot.bar(x, y, width, align=“center”, **kwargs)
准备数据
在这里插入图片描述
创建画布
plt.figure(figsize=(20,8), dpi=80)
绘制柱状图
x_ticks=range(len(movie_names)
plt.bar(len(x_ticks),tickets,color=[‘b’,‘r’,‘g’,‘y’,‘c’,‘m’,‘y’,‘k’,‘c’,‘g’,‘b’])
修改x刻度
plt.xticks(x_ticks, movie_names)
plt.show()
在这里插入图片描述
在这里插入图片描述

效果如下
在这里插入图片描述
直方图(histogram)
反应一组数据的分布状况,形状类似柱状图却有着与柱状图完全不同的含义。在坐标系中,横轴标出每个组的端点,中州表示频数,每个矩形的高代表对应的频数,这样的统计图称为频数分布直方图。
组数:在统计数据时,把数据按照不同的范围分成几个组,分成的组的个数称为组数
组距:每一个组两个端点的差
matplotlib.pyplot.hist(x, bins=None, density=None, **kwargs)
bins组数=(max-min)/组距
density:True显示频率,False显示频数
在这里插入图片描述

直方图注意组距设置,注意Y轴所代表的参数
饼状图(pie)
占比,分类占比不要超过九个
plt.pie(x, labels=, autopct=, colors)
x:数量,自动计算百分比
labels:每部分名称
autopct:占比显示指定%1.2f%%
colors:每部分颜色
添加axis 为了让显示的饼图保持原型,需要添加axis保证长宽一样
plt.axis(‘equal’)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值