Matplotlib的应用

目录

    • 前言:图表类型选择指南
    • 一、导入库
    • 二、对plt进行配置
      • [2.1 让图表正常显示中文](#2.1 让图表正常显示中文)
      • [2.2 使得绘制的图都为矢量图(全局有效)](#2.2 使得绘制的图都为矢量图(全局有效))
    • 三、常见图的绘制
        • [3.1 折线图](#3.1 折线图)
          • [3.1.1 图中一个坐标系](#3.1.1 图中一个坐标系)
          • [3.1.2 图中两个坐标系](#3.1.2 图中两个坐标系)
      • [3.2 散点图](#3.2 散点图)
      • [3.3 柱状图](#3.3 柱状图)
      • [3.4 其余图](#3.4 其余图)

前言:图表类型选择指南

一、导入库

python 复制代码
import matplotlib.pyplot as plt

二、对plt进行配置

2.1 让图表正常显示中文

python 复制代码
plt.rcParams['font.sans-serif'].insert(0, 'SimHei')
plt.rcParams['axes.unicode_minus'] = False

2.2 使得绘制的图都为矢量图(全局有效)

绘图时生成矢量图(SVG/PDF),矢量图放大后还是清晰的。矢量图跟图片的dpi无关,dpi=60和dpi=300的矢量图是一个清晰度。

python 复制代码
%config InlineBackend.figure.format='svg'

三、常见图的绘制

3.1 折线图
3.1.1 图中一个坐标系
python 复制代码
x = np.linspace(-2 * np.pi, 2 * np.pi, 120) # 从-2pai到2pai生成等间距的120个点
y1, y2 = np.sin(x), np.cos(x) # 得到这120个点对应的sin值和cos值
# 创建画布,figsize参数指定画布的尺寸,dpi设置图片的分辨率
plt.figure(figsize=(8, 4), dpi=120)
# 绘制折线图,用plot函数
plt.plot(x, y1, linewidth=2, marker='*', color='red') # linewidth参数代表线条的粗细,值越大线越粗
plt.plot(x, y2, linewidth=2, marker='^', color='blue')
# 显示绘图
plt.show()
3.1.2 图中两个坐标系
python 复制代码
# 如果要使用两个坐标系分别绘制正弦和余弦,使用subplot函数
plt.figure(figsize=(8, 4), dpi=120)
# 创建第一个坐标系
plt.subplot(2, 1, 1) # 将画布分成2行1列,index=1这是第一个子图
# 绘制第一个图
plt.plot(x, y1, linewidth=2, marker='*', color='red')
# 创建第二个坐标系
plt.subplot(2, 1, 2) # index=2这是第二个子图
# 绘制第二个图
plt.plot(x, y2, linewidth=2, marker='^', color='blue')
# 显示绘图
plt.show()

3.2 散点图

python 复制代码
# 散点图---了解两个变量的关系(了解三个变量的关系就用气泡图)
x = np.array([5550, 7500, 10500, 15000, 20000, 25000, 30000, 40000])
y = np.array([800, 1800, 1250, 2000, 1800, 2100, 2500, 3500])

plt.figure(figsize=(6, 4), dpi=120)
# 绘制散点图用scatter函数
plt.scatter(x, y)
plt.show()

3.3 柱状图

python 复制代码
x = np.arange(4)
y1 = np.random.randint(20, 50, 4)
y2 = np.random.randint(10, 60, 4)

plt.figure(figsize=(6, 4), dpi=120)
# 调用bar函数绘制柱状图
# x-0.1和x+0.1是为了让两个柱子错开,第一个柱子从0.9画到1.1,第二个柱子从1.1画到1.3
# label参数为柱子设置标签
plt.bar(x - 0.1, y1, width=0.2, label='销售A组') 
plt.bar(x + 0.1, y2, width=0.2, label='销售B组')
# 设置横轴的刻度
plt.xticks(x, labels=['Q1', 'Q2', 'Q3', 'Q4'])
# 设置图例
plt.legend()
plt.show()

# 保存图表
# 如果希望既显示图表又要保存图表,应该先保存再显示
plt.savefig('chart.png')
plt.show() # 每次show后都会清空当前图像

3.4 其余图

可参考链接:

  1. https://github.com/jackfrued/Python-100-Days/blob/master/Day66-80/78.数据可视化-1.md
  2. https://github.com/jackfrued/Python-100-Days/blob/master/Day66-80/79.数据可视化-2.md
相关推荐
失去妙妙屋的米奇5 天前
matplotlib数据展示
开发语言·图像处理·python·计算机视觉·matplotlib
小旺不正经7 天前
人工智能基础-matplotlib基础
人工智能·matplotlib
Thanks_ks7 天前
利用 Python 进行股票数据可视化分析
python·matplotlib·热力图·seaborn·可视化分析·股票数据·yfinance
拾荒的小海螺10 天前
【数据分析实战】使用 Matplotlib 绘制折线图
信息可视化·数据分析·matplotlib
灵均66612 天前
机器学习-线性回归模型
人工智能·机器学习·线性回归·numpy·pandas·scikit-learn·matplotlib
懒羊羊不进村12 天前
Python基础——Matplotlib库
开发语言·python·matplotlib
月小水长16 天前
Django 使用 matplotlib 遇到 RuntimeError: main thread is not in main loop 解决办法
python·django·matplotlib·thread·anr
搬砖的阿wei16 天前
Matplotlib:数据可视化的艺术与科学
python·信息可视化·matplotlib
啊阿狸不会拉杆16 天前
第二十章:Python-Matplotlib库实现函数可视化
开发语言·python·matplotlib