【Python】Matplotlib(学习笔记)

一、Matplotlib概述

1、什么是Matplotlib

画二维图表的python库

2、Matplotlib图像结构

【Python】Matplotlib(学习笔记)_第1张图片

3、Matplotlib三层结构

容器层 => 画板层Canvas、画布层Figure、绘图区/坐标系(x、y轴张成的区域)

辅助显示层

图像层

二、基础绘图功能

1、模块导入

matplotlib.pyplot包含了一系列类似于matlab的画图函数,它的函数作用于当前图形(tiqure)的当前坐标系(axes)

import matplotlib.pyplot as plt

2、折线图绘制

plt.figure()
plt.plot([1,2,3,4,5,6,7],[17,17,18,19,20,12,17])
plt.show()

【Python】Matplotlib(学习笔记)_第2张图片

3、设置画布属性

figsize : 画布长宽

dpi : 图像的清晰度

plt.figure(figsize=(1080,720), dpi=300)

4、保存图像

需要写在plt.show()之前

plt.savefig("./img/demo.png")

5、添加自定义x、y刻度

plt.xticks(x, **kwargs)
plt.yticks(y, **kwargs)

6、添加网格显示

plt.grid(True, linestyle="--", alpha=0.5)

【Python】Matplotlib(学习笔记)_第3张图片

7、添加描述信息

plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")

8、多个曲线的绘制

多次调用plt.plot()函数

【Python】Matplotlib(学习笔记)_第4张图片

9、图例的显示

在plot中添加label标签

plt.figure()
plt.plot([1,2,3,4,5,6,7],[17,17,18,19,20,12,17],label="shanghai")
plt.plot([1,2,3,4,5,6,7],[10,5,2,8,10,10,8],label="beijing")
# 显示图例
plt.legend()
plt.show()

【Python】Matplotlib(学习笔记)_第5张图片

10、多个坐标系显示

面向对象的画图方法

figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)
axes[0].plot([1,2,3,4,5,6,7],[17,17,18,19,20,12,17])
axes[1].plot([1,2,3,4,5,6,7],[10,5,2,8,10,10,8])
plt.show()

【Python】Matplotlib(学习笔记)_第6张图片

三、常见图标

1、应用场景

折线图(plot):某事物、某指标随时间的变化状况

散点图(scatter):关系/规律

柱状图(bar):统计/对比

直方图(histogram):分布状况

饼图(pie π):占比

2、散点图绘制

x = [12.3,15.3,12.5,15.5,9.6,19.8,12.9]
y = [10,5,2,8,10,10,8]

plt.figure(figsize=(25, 8), dpi=80)
plt.scatter(x,y)
plt.show()

【Python】Matplotlib(学习笔记)_第7张图片

3、柱状图绘制

name = ["a", "b", "c"]
value = [988, 698, 789]

plt.figure(figsize=(10, 8), dpi=80)
plt.bar(range(len(name)), value)
plt.xticks(range(len(name)), name)
plt.show();

【Python】Matplotlib(学习笔记)_第8张图片

4、直方图绘制

组数:在统计数据时,我们把数据按照不同的范围分成几个组,分成的组的个数称为组数

组距:每一组两个端点的差

value = [155, 153, 168, 162, 158, 152, 160, 164, 170, 161, 158, 172, 163,
       166, 176, 140, 162, 172, 168, 148, 141, 140, 176, 172, 141, 164,
       140, 167, 164, 159, 143, 174, 159, 178, 157, 157, 149, 152, 163,
       170, 175, 168, 171, 155, 169, 152, 178, 154, 162, 175, 160, 152,
       167, 164, 150, 152, 147, 174, 142, 179, 174, 142, 153, 170, 177,
       169, 163, 177, 165, 151, 165, 175, 140, 140, 176, 147, 155, 152,
       174, 177, 158, 174, 144, 157]

plt.figure(figsize=(10, 8), dpi=80)
plt.hist(value, bins=10)
plt.show()

【Python】Matplotlib(学习笔记)_第9张图片

直方图与柱状图的对比:

  1. 直方图展示数据的分布,柱状图比较数据的大小。
  2. 直方图X轴为定量数据,柱状图X轴为分类数据。
  3. 直方图柱子无间隔,柱状图柱子有间隔宽度可不一,柱状图柱子宽度须一致

直方图注意:组距的设置、考虑y轴的变量

5、饼图的绘制

value = [155, 53, 198, 62]
plt.figure(figsize=(10, 8), dpi=80)
plt.pie(value, autopct="%1.2f%%")
plt.axis("equal")
plt.show()

【Python】Matplotlib(学习笔记)_第10张图片

你可能感兴趣的:(python,matplotlib,学习)