三层结构:
容器层:①画板层②画布层③绘图区
辅助显示层
图像层
可绘制的集中图像及应用场景:
折线图plot:图像的变化规律
散点图scatter:关系/规律
柱状图bar:统计/对比
直方图histogram:分布情况
饼图:占比
使用Matplotlib进行画图操作,首先需要导入matplotlib.pyplot进行操作,通常导入操作为:
import matplotlib.pyplot as plt
#创建画布 相当于开辟内存
plt.figure()
#设定画图的点 前面是对应点的横坐标,后面是对应点的纵坐标
plt.plot([1,0,9],[4,5,6])
#将图像进行展示
plt.show()
使用方法:
#创建画布
plt.figure(figsize=(length,width),dpi=)
figsize:指定图的长宽(length,width)
dpi:图像的清晰度 每英寸多少个点
返回fig对象
#保存图像
plt.savefig(path)
代码需写在show前面,写在之后会保存空的图像
#修改x,y的刻度
plt.xticks(x,**kwargs)
x:要显示的刻度值
plt.yticks(y,**kwargs)
y:要显示的刻度值
实例:x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
#添加网格显示
plt.grid(True,linestyle="--",alpha=0.5)
True:确认添加网格
linestyle:线条的风格
alpha:透明度
#给X轴添加标签
plt.xlabel()
#给Y轴添加标签
plt.ylabel()
#给整个表格添加标题
plt.title()
#绘制图像
plt.plot(x,y,color,linestyle,label)
x,y:横纵坐标
color:设置绘制图像的颜色
linestyle:线条风格 默认为实线
label:为绘制的图设置标签(没有使用显示图例不会显示)
#显示图例
plt.legend(loc)
loc:通过传入数据来控制图例的位置
#创建绘图区
plt.subplots(nrows=1,ncols=1,**fig_kw)
返回值:figure(画布),axes(绘图区)
可以定义figsize,dpi等
#在多个绘图区的情况下,面向对象编程,使用绘图区的方法
实例:
axes[0].plot(x, y_shanghai, color="r", linestyle="-.", label="上海")
axes[1].plot(x, y_beijing, color="b", label="北京")
# 显示图例
axes[0].legend()
axes[1].legend()
# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_label)
axes[0].set_yticks(range(0, 40, 5))
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_label)
axes[1].set_yticks(range(0, 40, 5))
# 添加网格显示
axes[0].grid(linestyle="--", alpha=0.5)
axes[1].grid(linestyle="--", alpha=0.5)
# 添加描述信息
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点每分钟的温度变化状况")
#绘制散点图
plt.scatter(x,y)
x:横坐标
y:纵坐标
#绘制柱状图
plt.bar(x,y,width,align="center",**kwargs)
x:横坐标
y:纵坐标
color:可以传入列表,给柱状图按照顺序赋予颜色
绘制两个相邻的柱状图,可以使用两次bar函数,但是需要对两个bar函数x值进行调整
#绘制直方图:
plt.hist(x,bins=None,density=None,**kwargs)
x:需要进行分布状况研究的目标数据
bins:组数,指的是需要分为多少组 (最大值-最小值)//组距
density:使用频率代替纵坐标
#绘制饼图
plt.pie(x,labels=,autopct=,colors)
x:数量,自动算百分比
labels:每部分名称
autopct:占比显示指定%1.2f%%
colors:每部分颜色
#调整饼图的长宽,使之成为正圆
plt.axis("equal")