Python数据分析与展示:matplotlib绘图库入门-6

简介: Python数据分析与展示:matplotlib绘图库入门-6

plot()绘图函数

plt.plot(x, y, format_string, **kwargs)
x x轴 列表或数组
y y轴 列表或数组
fromat_string 格式字符串
    颜色字符
        b,蓝色
        g,绿色
        r,红色
        c,青绿色cyan
        m,洋红色magenta
        y,黄色
        k,黑色
        w,白色
        #008000 RGB颜色
        0.8 灰度值
    风格字符
        -  实线
        -- 破折线
        -. 点划线
        : 虚线
        '' 无线条
    标记字符
        . 点标记 
        , 像素标记
        o 实心圈标记
        v 倒三角标记
        ^ 上三角标记
        > 右三角标记
        < 左三角标记
        1 下花三角标记
        2 上花三角标记
        3 左花三角标记
        4 右花三角标记
        s 实心方形标记
        p 实心五角标记
        * 星型标记
        h 竖六边形标记
        H 横六边形标记
        + 十字标记
        x x标记
        D 菱形标记
        d 瘦菱形标记
        | 垂直线标记
**kwargs
    color 控制颜色 color="green"
    linestyle 线条风格 linestyle="dashed"
    marker 标记风格 marker="o"
    markerfacecolor 标记颜色  markerfacecolor="blue"
    markersize 标记尺寸 markersize=20
    ...

中文显示

matpoltlib默认不支持中文
方式一:matplotlib.rcParams全局设置(字典)
    font.family 显示字体
        SimHei 中文黑体
        Kaiti 中文楷体
        LiSu  中文隶书
        FangSong  中文仿宋
        YouYuan  中文幼圆
        STSong  华文宋体
    font.style 字体风格 正常normal 斜体 italic
    font.size 字体大小  整数字号或large x-small
方式二 单独设置参数 fontproperties

pyplot文本显示函数

plt.xlabel()  x轴文本标签
plt.ylabel()  y轴文本标签
plt.title()  图形整体标签
plt.text()   任意位置增加文本
plt.annotate()  带箭头的注解

绘图区域

1、plt.subplot(nrows, ncols, plot_number)
2、plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
    设定网格,选中网格,确定选中行列区域数量,编号从0开始
    例如:plt.subplot2grid((3,3), (1,0), colspan=2)
3、GridSpes类
    from matplotlib.gridspec import GridSpec
    gs = GridSpec(3, 3)
    ax1 = plt.subplot(gs[0, :])

代码实例

引入模块


# -*- coding: utf-8 -*-
# @File    : matplotlib_demo.py
# @Date    : 2018-05-06
from matplotlib import rcParams
import matplotlib.pyplot as plt
import numpy as np

绘制图形并保存

def foo1():
    # 设置y轴数值
    plt.plot([3, 1, 4, 5, 2])
    # 设置y轴标签
    plt.ylabel("grade")
    # 保存,默认为png, dpi图片质量
    plt.savefig("img1", dpi=600)
    # 显示
    plt.show()

image.png


绘制x 轴和 y 轴的数据

def foo2():
    plt.plot([1, 2, 3, 4, 5], [3, 1, 4, 5, 2])
    plt.ylabel("grade")
    # 设置x轴,y轴起止点坐标
    plt.axis([1, 5, 0, 6])
    plt.savefig("img2", dpi=600)
    plt.show()

image.png

多条线条

def foo3():
    a = np.arange(10)
    plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5)
    plt.savefig("img3", dpi=600)
    plt.show()

image.png


使用格式字符串

def foo4():
    a = np.arange(10)
    plt.plot(a, a*1.5, 'go-',
             a, a*2.5, 'rx',
             a, a*3.5, '*',
             a, a*4.5, 'b-.'
             )
    plt.savefig("img4", dpi=600)
    plt.show()

image.png


使用关键字标记

def foo5():
    a = np.arange(10)
    plt.plot(a, a*1.5, color="green", linestyle="dashed", marker='o')
    plt.savefig("img5", dpi=600)
    plt.show()

image.png


使用中文,方式一 全局设置

def foo6():
    # 设置中文样式
    rcParams["font.family"]="SimHei"  #黑体
    rcParams["font.size"]= 20
    # 绘制曲线
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.xlabel("x轴坐标")
    plt.ylabel("y轴坐标")
    plt.savefig("img6", dpi=600)
    plt.show()

image.png

使用中文,方式二 局部设置

def foo7():
    # 绘制曲线
    a = np.arange(0.0, 5.0, 0.02)
    plt.xlabel("x轴坐标", fontproperties="SimHei", fontsize=20)
    plt.ylabel("y轴坐标", fontproperties="SimHei", fontsize=20)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.savefig("img7", dpi=600)
    plt.show()

image.png


设置文本参数

def foo8():
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.xlabel("横轴:时间", fontproperties="SimHei", fontsize=15, color="green")
    plt.ylabel("纵轴:振幅", fontproperties="SimHei", fontsize=15, color="red")
    plt.title("正弦波实例$y=cos(2\pi x)$", fontproperties="SimHei", fontsize=25)
    plt.text(5, 1, "$\mu=100$", fontsize=15)
    # 注解
    plt.annotate("$\mu=100$", xy=(2, 1), xytext=(3, 1.3), 
            arrowprops=dict(facecolor="black", shrink=0.1, width=2))
    plt.axis([-1, 6, -2, 2])
    plt.grid(True)  # 显示网格
    plt.savefig("img8", dpi=600)
    plt.show()

image.png


绘图区域1

def foo9():
    def f(t):
        return np.exp(-t) * np.cos(2*np.pi*t)
    a = np.arange(0.0, 5.0, 0.02)
    # 设置绘图区域
    plt.subplot(2, 1, 1)
    plt.plot(a, f(a))
    # 设置绘图区域
    plt.subplot(212)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.savefig("img9", dpi=600)
    plt.show()

image.png


绘图区域2

def foo10():
    # 左上区域
    plt.subplot2grid((3,3), (0,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    # 右边区域
    plt.subplot2grid((3,3), (0,2), rowspan=3)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    # 左中区域
    plt.subplot2grid((3,3), (1,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    # 左下区域
    plt.subplot2grid((3,3), (2,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    plt.savefig("img10", dpi=600)
    plt.show()

image.png


绘图区域3

from matplotlib.gridspec import GridSpec
def foo11():
    # 分割绘图区域
    gs = GridSpec(3, 3)
    # 在绘图区域绘图
    ax1 = plt.subplot(gs[0, :])
    ax1.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    ax2 = plt.subplot(gs[1, 0:-1])
    ax2.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    ax3 = plt.subplot(gs[2, 0:-1])
    ax3.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    ax4 = plt.subplot(gs[1:, 2])
    ax4.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])
    plt.savefig("img11", dpi=600)
    plt.show()

image.png

相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
385 7
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
375 1
|
2月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
579 1
|
3月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
230 5
|
3月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
3月前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
186 0
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
866 4
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
258 2
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
365 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析

推荐镜像

更多