数据分析绘图库matplotlib

简介

matplotlib是python比较底层的可视化库,可定制性强、图表资源丰富、简单易用、达到出版质量级别。
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。

绘图的基础知识

  • 图例Legend 代表图形里的内容
  • 网格Grid,图形中的虚线,True显示网格
  • 点 Markers:表示点的形状。

在这里插入图片描述

常用图形

基本的视觉元素有三种:点、线、柱状。
在这里插入图片描述

绘图步骤

在这里插入图片描述

# 导入图库
import matplotlib.pyplot as plt
import numpy as np
# 创建画板figure
figure = plt.figure(figsize=(10, 10))
# 创建子图subplot/Axes
ax = plt.subplot(1, 1, 1)
# 准备数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制
ax.plot(x, y, color='orange', linestyle='-')
ax.set_title('y=sinx')
ax.set_xlabel('x')
ax.set_ylabel('y')
# 显示图形
plt.show()

在这里插入图片描述
注意:如果只绘制一个图的话,不需要创建画板和子图,直接绘制即可。

属性详解

在这里插入图片描述

在这里插入图片描述

多图绘制

在这里插入图片描述
在这里插入图片描述
子图的绘制

# 1). 导入绘图库
import  matplotlib.pyplot as plt
import  numpy as np
# 2). 创建画板figure
figure = plt.figure(figsize=(10, 10))
# 3). 创建子图subplot/Axes, 生成2行一列的子图,
# 第一行第一列绘制sinx的图形, 第二行第一列绘制cosx的图形
ax1 = plt.subplot(2, 1, 1)
ax2 = plt.subplot(2, 1, 2)
# 4). 准备数据
# 从0-50分割成100份
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 6). 绘制
ax1.plot(x, y1, color='orange', linestyle='-.')
ax1.set_title('y = sinx')
ax1.set_xlabel('x')
ax1.set_ylabel('y')

ax2.plot(x, y2, color='m', linestyle='-.')
ax2.set_title('y = cosx')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
# 7). 显示图形
plt.show()

条形图的绘制
条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。

import matplotlib.pyplot as plt

# 1. 创建figure
fig = plt.figure()

# 2. 创建子图(1行2列)
ax1 = plt.subplot(1, 2, 1)
ax1.set_title('男生购买饮用水情况的调查结果')
ax2 = plt.subplot(1, 2, 2)
ax2.set_title('女生购买饮用水情况的调查结果')

# ***********中文乱码如何解决
plt.rcParams['font.sans-serif'] = ['SimHei']

# 3. 加载数据信息
waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
boy_buy_num = [6, 7, 6, 2, 1]
girl_buy_num = [9, 4, 4, 6, 5]

# 4. 绘制条形图
bar_width = 0.4
ax1.bar(waters, boy_buy_num, bar_width, color='orange')
ax2.bar(waters, girl_buy_num, bar_width, color='g')

# 5. 保存图片到本地
# plt.show()
plt.savefig('bar.png')

在这里插入图片描述
横向条形图绘制

import matplotlib.pyplot as plt

# 1. 创建figure
fig = plt.figure()

# 2. 创建子图(1行2列)
ax1 = plt.subplot(2, 1, 1)
ax1.set_title('男生购买饮用水情况的调查结果')
ax2 = plt.subplot(2, 1, 2)
ax2.set_title('女生购买饮用水情况的调查结果')

# ***********中文乱码如何解决
plt.rcParams['font.sans-serif'] = ['SimHei']

# 3. 加载数据信息
waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
boy_buy_num = [6, 7, 6, 2, 1]
girl_buy_num = [9, 4, 4, 6, 5]

# 4. 绘制条形图
bar_width = 0.4
ax1.barh(waters, boy_buy_num, height=bar_width, color='orange')
ax2.barh(waters, girl_buy_num, height=bar_width, color='g')

# 5. 保存图片到本地
# plt.show()
plt.savefig('bar.png')

在这里插入图片描述
并列条形柱状图

import matplotlib.pyplot as plt
import numpy as np

# ***********中文乱码如何解决
plt.rcParams['font.sans-serif'] = ['SimHei']
# 加载数据信息
waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
boy_buy_num = [6, 7, 6, 2, 1]
girl_buy_num = [9, 4, 4, 6, 5]

# 调整条形图的横坐标
bar_width = 0.4
boy_index = np.arange(len(waters))  # [0, 1, 2, 3, 4]
girl_index = boy_index + bar_width  # numpy传播机制, [0.4, 1.4, 2.4, 3.4, 4.4]

# 绘制条形图
plt.bar(boy_index, boy_buy_num, bar_width, color='orange', label='男生')
plt.bar(girl_index, girl_buy_num, bar_width, color='g', label='女生')
# 修改无意义的横坐标为有意义的横坐标
plt.xticks(boy_index + bar_width / 2, waters)
plt.ylabel("购买量")
plt.title("购买饮水情况的调查表")

plt.legend()
# 保存图片到本地
# plt.show()
plt.savefig('bar.png')

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值