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

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

参考文档:https://matplotlib.org/gallery/index.html

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()

a10.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()

a11.1.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()

a11.2.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()

a11.3.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()

a11.4.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()

a11.5.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()

a11.6.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()

a11.7.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()

a11.8.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()

a11.9.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()

a11.10.png



相关文章
|
2天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
2天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
2天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
2天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
2天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
2天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
2天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
5月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
5月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
93 1
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
108 8