4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置

目录

  • 目录
  • 前言
  • (一)图例legend
    • 1.默认不带参数的图例
    • 2.添加参数的图例
    • 3.将图例移动到框外
  • (二)网格grid
    • 1.说明
    • 2.源代码:
    • 3.输出效果
  • (三)背景axses
    • 1.设置全局的背景色:
    • 2.设置局部的背景色

目录

前言

本章节将讲一下三个内容,图例,网格,背景

(一)图例legend

1.默认不带参数的图例

(1)说明:

默认情况下,是自适应的放在图例的位置,需要在绘图的时候,添加Label标识。

在使用plt.legend()显示图例

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 绘图
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示图例
plt.legend()

# 展示
plt.show()

(3)展示效果

2.添加参数的图例

(1)可选参数

参数 说明 默认值
loc=int\string 图例所在的位置 0
fontsize=int\string 图例的文字大小 当前文字的大小
facecolor=‘b‘ 图例的背景色 ‘w‘
edgecolor=‘b‘ 图例的边框颜色 ‘w‘
title=string 图例的标题 None
shadow=bool 是否显示图例的阴影 False
fancybox=bool 是否显示圆角 False
framealpha=float 图例的透明度 None
  1. 位置的参数值:可以使用字符串与数字

  1. 文字的大小值:‘xx-small‘, ‘x-small‘, ‘small‘, ‘medium‘, ‘large‘, ‘x-large‘, ‘xx-large‘,或者直接用数字表示大小。
  2. 透明度的范围:0.0~1.0,1.0是不透明,0.0是全透明,从0.0到1.0越来越不透明。

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 绘图
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示图例
plt.legend(loc='upper right',
           fancybox=True,
           title="l am legend",
           edgecolor='r',
           shadow=True,
           fontsize='x-large',
           facecolor='b',
           framealpha=0.3)

# 展示
plt.show()

(3)输出效果:

3.将图例移动到框外

(1)说明:

bbox_to_anchor=(x, y) 可以移动到任意位置

x,y是float:0.0~1.0,表示是x,y轴的比例,x:左->右增大, y:下->上 增大

并且结合loc来确定位置。

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y1 = x
y2 = x**2
y3 = x**(1/2)

# 绘图
plt.plot(x, y1, "--", label="y1")
plt.plot(x, y2, "o-", label="y2")
plt.plot(x, y3, "-.", label="y3")

# 展示图例
plt.legend(bbox_to_anchor=(1, 0.8), loc=3)

# 展示
plt.show()

(3)输出效果:

(二)网格grid

1.说明

语法:plt.grid([可选参数])

可选参数 说明 默认值
b=bool 是否显示网格 Fales
color=‘r‘ 网线的颜色 ‘w‘
linestyle=‘--‘ 网格的线形 ‘-’
linewidth=1 网格的线宽 1
alpha=0.3 网线的透明度0.0~1.0 1
axis={"both",‘x‘,"y"} 表示在哪些方向轴上画网线,x轴,y轴 "both"
which={"both","major","minor"} 表示在哪些刻度上画网线,主刻度,还是小刻度 ”both"

2.源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y = x**2

# 绘图
plt.plot(x, y)

# 设置网格线
plt.grid(b=True,
         color='r',
         linestyle='--',
         linewidth=1,
         alpha=0.3,
         axis='x',
         which="major")

# 展示
plt.show()

3.输出效果

(三)背景axses

1.设置全局的背景色:

(1)说明:

  1. 设置figure窗体的颜色:plt.rcParams[‘figure.facecolor‘] = ‘color‘
  2. 设置axes绘图区的颜色:plt.rcParams[‘axes.facecolor‘] = ‘color‘

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y = x**2

# =====设置背景====
# 设置figure窗体的颜色
plt.rcParams['figure.facecolor'] = 'b'
# 设置axes绘图区的颜色
plt.rcParams['axes.facecolor'] = 'g'

# 绘图
plt.plot(x, y)

# 展示
plt.show()

(3)输出效果:

2.设置局部的背景色

(1)说明:

  1. 获取ax对象:ax = plt.gca()
  2. 设置ax区域背景颜色:ax.patch.set_facecolor("gray")
  3. 设置ax区域背景颜色透明度:ax.patch.set_alpha(0.5)

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np

# 数据
x = np.linspace(-5, 5, 50)
y = x**2

# 绘图
plt.plot(x, y)

# =====设置背景====
# 得到ax对象
ax = plt.gca()

# 设置ax区域背景颜色
ax.patch.set_facecolor("gray")

# 设置ax区域背景颜色透明度
ax.patch.set_alpha(0.5)

# 展示
plt.show()

(3)输出效果:

作者:Mark

日期:2019/03/12 周二

原文地址:https://www.cnblogs.com/zyg123/p/10519588.html

时间: 2024-10-29 13:59:12

4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置的相关文章

4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib

目录 目录 前言 (一)matplotlib的介绍 (二)画一个简单的画布 ==1.源代码== ==2.展示效果== (三)画布按键的功能介绍 ==1.对于画布功能键的排序== ==(1)主页== ==(2)上一个视图== ==(3)下一个视图== ==(4)移动查看== ==(5)放大查看== ==(6)窗体设置== ==(7)保存图片== 目录 前言 对于数据可视化的python库,对于Matplotlib早有耳闻,今天就来正式学习一下. (一)matplotlib的介绍 matplotli

4.8Python数据处理篇之Matplotlib系列(八)---Figure的学习

目录 目录 前言 (一)figure()方法的定义 (二)figure()方法的参数 (三)figure()方法的例子 1.多窗体绘图: 2.窗口得分别率 目录 前言 今天我们来学习一下plt.figure()方法 (一)figure()方法的定义 官网介绍: https://matplotlib.org/api/_as_gen/matplotlib.pyplot.figure.html?highlight=pyplot%20figure#matplotlib.pyplot.figure 原函数

4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置

目录 目录 前言 (一)设置轴的范围 1.同时对于x,y轴设置 2.分别对与x,y轴的设置 (二)设置刻度的大小 1.普通的刻度设置 2.添加文本的刻度设置 3.主副刻度的设置 (三)设置轴的数据 1.说明: 2.源代码 3.输出效果: (四)设置axes脊柱 1.属性列表 2.实例1-修改默认的坐标样式 3.实例2-带箭头的坐标系 目录 前言 本章节讲的是关于轴的设置,尽可能举例多种情况. (一)设置轴的范围 1.同时对于x,y轴设置 (1)语法说明 plt.axis([xmin, xmax,

5.5Python数据处理篇之Sympy系列(五)---解方程

目录 目录 前言 (一)求解多元一次方程-solve() 1.说明: 2.源代码: 3.输出: (二)解线性方程组-linsolve() 1.说明: 2.源代码: 3.输出: (三)解非线性方程组-nonlinsolve() 1.说明: 2.源代码: 3.输出: (四)求解微分方程-dsolve() 1.说明: 2.源代码: 3.输出: 目录 前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大. 本章节学习对应官网的:Solvers 官方教程 https://docs.sympy.o

SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案

原文:SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的GIS专业理论知识. 5

Silverlight & Blend动画设计系列十一:沿路径动画(Animation Along a Path)

原文:Silverlight & Blend动画设计系列十一:沿路径动画(Animation Along a Path) Silverlight 提供一个好的动画基础,但缺少一种方便的方法沿任意几何路径对象进行动画处理.在Windows Presentation Foundation中提供了动画处理类DoubleAnimationUsingPath和PointAnimationUsingPath,使用这些类就可以非常容易的实现沿几何路径的动画处理,本文提供了基于Silverlight的等效动画类

struts2官方 中文教程 系列十一:使用XML进行表单验证

在本教程中,我们将讨论如何使用Struts 2的XML验证方法来验证表单字段中用户的输入.在前面的教程中,我们讨论了在Action类中使用validate方法验证用户的输入.使用单独的XML验证文件让您可以内置到Struts 2框架的验证器. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列十一:使用XML进行表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6938720.html 下载本章节代码 为了使用户能够编辑存储在Person对

java基础解析系列(十一)---equals、==和hashcode方法

java基础解析系列(十一)---equals.==和hashcode方法 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer缓存及装箱拆箱 java基础解析系列(三)---HashMap原理 java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(五)---HashMap并发下的问题以及HashTable和CurrentHashMap的区别 j

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数

本文将介绍三个有趣的随机问题,分别是随机重新排列.从文件中随机取一行数据.生成N个随机数. 一.随机重新排列 将一个序列打乱并对其进行随机的重新排列,关键在于每种序列的被选择概率要一样,不然有失"公平".现在让我们来寻找如何保证每种序列被选择的概率一样大的算法. 首先假设这个数组只有二个元素,设数组a为{1, 2},显然这个数组只有二种可能的排列,要么是{1,2}要么是{2,1}.很容易想到一种方法--只要第二个元素有50%的概率与第一个元素交换即可.用代码表现下: if (rand(