Matplotlib实战:如何用代码画出漂亮的图表?

一、什么是Matplotlib

首先先安装Matplotlib

pip install matplotlib

matplotlib是专门用于开发2D图表、3D图表
以渐进、交互方式实现数据可视化

二、为什么学习Matplotlib

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。

  • 能将数据进行可视化,更直观的呈现
  • 使数据更加客观、更具说服力

三、实现一个简单的Matplotlib画图-以折线图为例

1、matplotlib.pyplot模块,这个模块包含了一系列类似于matlab的画图函数

import matplotlib.pyplot as plt 

2、图形绘制流程

  • 创建画布- plt.figure()
plt.figure(figsize=(), dpi=)
# figsize: 指定图的长度
# dpi: 图像的清晰度
# 返回fig对象
  • 绘制图像- plt.plot(x, y)

  • 显示图像- plt.show()
    3、折线图绘制与显示

import matplotlib.pyplot as plt
# 创建画布
plt.figure(figsize=(10, 10), dpi=100)
# 绘制折线图
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
#显示图像
plt.show()

在这里插入图片描述

四、基础绘图功能-以折线图为例

1、完善原始折线图- 给图形添加辅助功能
画出某城市11点到12点1个小时内每分钟的温度变化折线图,温度范围在15度-18度。
1.1准备数据并画出初始折线图

import matplotlib.pyplot as plt
import random

# 画出温度变化图

# 准备x, y坐标的数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 创建画布
plt.figure(figsize=(20, 8), dpi= 80)

# 绘制折线图
plt.plot(x, y_shanghai)

# 显示图像
plt.show()

在这里插入图片描述
1.2自定义x,y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值

import matplotlib.pyplot as plt
import random
from pylab import mpl

# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 创建画布
plt.figure(figsize=(20, 8), dpi= 80)

# 绘制图像
plt.plot(x, y_shanghai)

# 添加x,y轴刻度
# 构造x, y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

# 刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks)

# 添加网格显示
plt.grid(True, linestyle = "--", alpha=0.5)

# 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点-12点某城市温度变化图", fontsize = 20)

# 图像保存
plt.savefig("./test.png")


# 显示图像
plt.show()

在这里插入图片描述
2、在一个坐标系种绘制多个图像

# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
# 绘制折线图
plt.plot(x, y_shanghai)
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')

在这里插入图片描述
3、折线图的应用场景

  • 呈现公司产品(不同区域)每天活跃用户数
  • 呈现app每天下载数量
  • 呈现产品新功能上线后,用户点击次数随时间的变化
  • 拓展:画各种数学函数图像
import numpy as np
import matplotlib.pyplot as plt

# 准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)

# 创建画布
plt.figure(figsize=(20, 8), dpi= 100)

# 绘制函数图像
plt.plot(x, y)

#添加网格显示
plt.grid()

# 显示图像
plt.show()

在这里插入图片描述
五、小结

  • 添加x,y轴刻度
  • plt.xticks()
  • plt.yticks()
  • 注意:在传递进去的第一个参数必须是数字,不能是字符串,如果是字符串,需要进行替换操作
  • 添加网格显示
    • plt.grid(linestyle=“-”, alpha =0.5)
  • 添加描述信息
    • plt.xlabel()
    • plt.ylabel()
    • plt.title()
  • 图像保存
    • plt.savefig(“路径”)
  • 多次plot
    • 直接添加
  • 显示图例
    • plt.legend(loc=“best”)
  • 多个坐标系显示
    • plt.subplots(nrows = , ncols=)
  • 折线图的应用
    • 应用于观察数据的变化
    • 可以画出一些数学函数图像

猜你喜欢

转载自blog.csdn.net/qq_30353203/article/details/131217625