当前位置: 首页 > news >正文

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)展示效果

01.png

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. 位置的参数值:可以使用字符串与数字

02.png

  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)输出效果:

03.png

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)输出效果:

04.png

(二)网格grid

1.说明

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

可选参数说明默认值
b=bool是否显示网格Fales
color='r'网线的颜色'w'
linestyle='--'网格的线形‘-’
linewidth=1网格的线宽1
alpha=0.3网线的透明度0.0~1.01
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.输出效果

05.png

(三)背景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)输出效果:

06.png

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)输出效果:

07.png

作者:Mark

日期:2019/03/12 周二

转载于:https://www.cnblogs.com/zyg123/p/10519588.html

相关文章:

  • 苹果尝试转型手机可能不再是核心业务
  • selenium 之 Css Selector
  • 保守的国美再一次进击社交电商,前途未卜?
  • 自动化办公:python 操作Excel
  • 基于房源的画像分析
  • 防止视频资源被下载
  • 第一周 IP通信基础学习回顾
  • Electron系列文章-主进程与渲染进程
  • 刀塔自走棋上线不到十分钟就被功击,几十万玩家登录不上
  • java内存占用异常问题常见排查流程(含堆外内存异常)
  • Java springcloud B2B2C o2o多用户商城 springcloud架构(八)springboot整合mongodb
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 云端服务器与传统的独立主机服务器有什么区别
  • 中台之上(十三):探讨支持组装式开发的业务架构设计方法
  • 阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
  • 【391天】每日项目总结系列128(2018.03.03)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android 一些 utils
  • co.js - 让异步代码同步化
  • iOS 系统授权开发
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • MD5加密原理解析及OC版原理实现
  • Mysql优化
  • mysql中InnoDB引擎中页的概念
  • node 版本过低
  • python大佬养成计划----difflib模块
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 当SetTimeout遇到了字符串
  • 力扣(LeetCode)56
  • 聊一聊前端的监控
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 什么软件可以提取视频中的音频制作成手机铃声
  •  一套莫尔斯电报听写、翻译系统
  • 一些css基础学习笔记
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 函数计算新功能-----支持C#函数
  • 交换综合实验一
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #etcd#安装时出错
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (9)STL算法之逆转旋转
  • (C语言)二分查找 超详细
  • (Java数据结构)ArrayList
  • (二)fiber的基本认识
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (数据结构)顺序表的定义
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .java 9 找不到符号_java找不到符号
  • .libPaths()设置包加载目录
  • .Net - 类的介绍