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
相关推荐
迷人的小荔枝2 天前
seaborn
matplotlib
玫瑰花店4 天前
ubuntu中解决matplotlib无法显示中文问题
linux·ubuntu·matplotlib
龙虎榜小红牛系统9 天前
Python项目源码63:病历管理系统1.0(tkinter+sqlite3+matplotlib)
python·sqlite·matplotlib
eqwaak013 天前
Matplotlib高阶技术全景解析(续):动态交互、三维可视化与性能优化
开发语言·python·语言模型·性能优化·交互·matplotlib
T0uken14 天前
【Python】Matplotlib:立体永生花绘制
开发语言·python·matplotlib
captain_keating15 天前
使用matplotlib绘制Raincloud图/云雨图/柱状图/小提琴图
python·matplotlib
YiSLWLL17 天前
使用Tauri 2.3.1+Leptos 0.7.8开发桌面小程序汇总
python·rust·sqlite·matplotlib·visual studio code
满怀101519 天前
【Python进阶】数据可视化:Matplotlib从入门到实战
python·信息可视化·数据分析·matplotlib·数据可视化
失去妙妙屋的米奇1 个月前
matplotlib数据展示
开发语言·图像处理·python·计算机视觉·matplotlib