目录

目录

前言

本章节讲的是关于轴的设置,尽可能举例多种情况。

(一)设置轴的范围

1.同时对于x,y轴设置

(1)语法说明

plt.axis([xmin, xmax, ymin, ymax])

(2)源代码

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 绘图
plt.plot(x, y) # 设置轴的范围
plt.axis([-6, 7, -1, 30]) # 展示
plt.show()

(3)输出效果

2.分别对与x,y轴的设置

(1)语法说明

  1. 对于x轴:plt.xlim(start, end)
  2. 对于y轴:plt.ylim(start, end)

如果是使用ax对象设置范围的话,则可在前加set_命令

ax.set_xlim(start, end), ax.set_ylim(start, end), 其他的命令类似如此。

(2)源代码

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 绘图
plt.plot(x, y) # 设置轴的范围
plt.xlim(-3, 8)
plt.ylim(-2, 50) # 展示
plt.show()

(3)输出效果

(二)设置刻度的大小

1.普通的刻度设置

(1)说明

x轴的刻度:plt.xticks(item)

y轴的刻度:plt.yticks(item)

(2)源代码

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 绘图
plt.plot(x, y) # 设置轴的刻度
plt.xticks(range(-8, 8, 2))
plt.yticks([0, -3, -6, 7, 15, 20, 37, 48, 72]) # 展示
plt.show()

(3)输出效果

2.添加文本的刻度设置

(1)说明

其实就是在设置刻度的基础上,在添加一个列表,来显示刻度。

如:plt.xticks(['数据'], ["标签"])

(2)源代码

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 绘图
plt.plot(x, y) # 设置轴的刻度
plt.xticks(range(-8, 8, 2))
plt.yticks([0, 40, 60], ["bad", 'good', "best"]) # 展示
plt.show()

(3)输出效果

3.主副刻度的设置

(1)说明

  1. 需要导入:from matplotlib.ticker import MultipleLocator, FormatStrFormatter 模块
  2. 主刻度:(y轴同理)
    1. 倍数:ax.xaxis.set_major_locator(MultipleLocator(倍数))
    2. 文本格式:ax.xaxis.set_major_formatter(FormatStrFormatter('%占位数.小数点数f'))
  3. 副刻度:(将"major"改为"minor"即可)
    1. 倍数:ax.xaxis.set_minor_locator(MultipleLocator(倍数))
    2. 文本格式:ax.xaxis.set_minor_formatter(FormatStrFormatter('%占位数.小数点数f'))

(2)源代码

# 导入模块
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
import numpy as np # 数据
x = np.linspace(-30, 30, 100)
y = x**2 # 绘图
plt.plot(x, y) ax = plt.gca()
# 设置轴的主刻度
# x轴
ax.xaxis.set_major_locator(MultipleLocator(20)) # 设置20倍数
ax.xaxis.set_major_formatter(FormatStrFormatter('%5.1f')) # 设置文本格式 # y轴
ax.yaxis.set_major_locator(MultipleLocator(100)) # 设置100倍数
ax.yaxis.set_major_formatter(FormatStrFormatter('%1.2f')) # 设置文本格式 # 设置轴的副刻度
# x轴
ax.xaxis.set_minor_locator(MultipleLocator(5)) # 设置10倍数
# ax.xaxis.set_minor_formatter(FormatStrFormatter('%2.1f')) # 设置文本格式 # y轴
ax.yaxis.set_minor_locator(MultipleLocator(50)) # 设置50倍数
# ax.yaxis.set_minor_formatter(FormatStrFormatter('%1.0f')) # 设置文本格式 # 设置网格
ax.xaxis.grid(True, which='major') # x坐标轴的网格使用主刻度
ax.yaxis.grid(True, which='minor') # y坐标轴的网格使用次刻度 # 展示
plt.show()

(3)输出效果

(三)设置轴的数据

1.说明:

以x轴的数为日期,再以plt.gcf().autofmt_xdate()来旋转显示日期数据。

2.源代码

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
N = 4
y = np.random.randint(-20, 20, (1, N)).flatten() x = ["2019-3-13", "2019-3-14", "2019-3-15", "2019-3-16"] # 绘图
plt.plot(x, y) # 旋转日期显示
plt.gcf().autofmt_xdate() # 展示
plt.show()

3.输出效果:

(四)设置axes脊柱

1.属性列表

ax.spines[' '].xxx 说明 默认值
set_visible(bool) 边框的可见性 True
ax.xaxis.set_ticks_position({"top","left"……}) 刻度的显示位置 外面(不是ax.spines[' '].)
set_position({"top","left"……}) 边框的位置 左下角为交点
set_color(string) 边框的颜色 “black"(当值为None也是隐藏)
set_linewidth(int) 边框的宽度 1
set_linestyle(string) 边框的线性 ”-“

2.实例1-修改默认的坐标样式

(1).说明:

设置反方向(y轴同理):

x轴反向:ax.invert_xaxis()

(2).源代码:

# 导入模块
import matplotlib.pyplot as plt
import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 绘图
plt.plot(x, y) ax = plt.gca()
# ===设置脊(边框)===
# 1.隐藏上与右的边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_color(None) # 2.设置颜色
ax.spines['left'].set_color('b')
ax.spines['bottom'].set_color('r') # 3.设置线宽
ax.spines['left'].set_linewidth(5)
ax.spines['bottom'].set_linewidth(3) # 4.设置线形
ax.spines['left'].set_linestyle('--')
ax.spines['left'].set_linestyle('-.') # 5.设置交点位置(0, 35)
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 35)) # 6.设置数据显示的位置
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('right') # 7.设置反方向(y轴同理)
ax.invert_xaxis() # x轴反向 # 展示
plt.show()

(3).输出效果:

3.实例2-带箭头的坐标系

(1)说明:

需要导入:import mpl_toolkits.axisartist as axisartist

大致步骤如下:

  1. 隐藏原有的边框坐标系
  2. 创建新的坐标系
  3. 添加箭头

注意:再创建新的坐标系时ax.new_floating_axis(0, 0)

  1. 第一个参数:0表示横线,1表示竖线
  2. 第二格参数:表示经过那个坐标点。

(2)源代码:

# 导入模块
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist import numpy as np # 数据
x = np.linspace(-10, 10, 100)
y = x**2 # 创建画布
fig = plt.figure(figsize=(4, 6))
ax = axisartist.Subplot(fig, 111)
# 将绘图区对象添加到画布中
fig.add_axes(ax) # ===带箭头坐标系的设置===
# 1.隐藏原有的边框坐标系
ax.axis[:].set_visible(False) # 2.创建新的坐标系
ax.axis["x"] = ax.new_floating_axis(0, 0)
ax.axis["y"] = ax.new_floating_axis(1, 0) # 3.添加箭头
ax.axis["x"].set_axisline_style("->", size=2.0)
ax.axis["y"].set_axisline_style("->", size=1.0) # 绘图
ax.plot(x, y) # 展示
plt.show()

(3)输出效果:

作者:Mark

日期:2019/03/13 周三

4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置的更多相关文章

  1. 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示

    目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...

  2. 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图

    目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...

  3. 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制

    目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...

  4. 4.12Python数据处理篇之Matplotlib系列(十二)---绘图风格的介绍

    目录 目录 前言 (一)不同风格 1.说明: 2.使用: 3.代码使用: (二)例子演示 1.dark_background 2.bmh 3.fivethirtyeight 4.ggplot 5.gr ...

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

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

  6. 4.9Python数据处理篇之Matplotlib系列(九)---子图分布

    目录 目录 前言 (一)subplot()方法 ==1.语法说明== ==2.源代码== ==3.输出效果== (二)subplot2grid方法 ==1.语法说明== ==2.源代码== ==3.展 ...

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

    目录 目录 前言 (一)figure()方法的定义 (二)figure()方法的参数 (三)figure()方法的例子 1.多窗体绘图: 2.窗口得分别率 目录 前言 今天我们来学习一下plt.fig ...

  8. 4.7Python数据处理篇之Matplotlib系列(七)---matplotlib原理分析

    目录 目录 前言 (一)总框架分析 (二)函数式的绘图 1.说明: 2.函数绘图的缺优点 3.绘图类的函数 4.操作类的函数 5.例子: (三)面向对象式的绘图 1.基本概念 2.基本对象 3.面向对 ...

  9. 4.6Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist2d()直方图

    目录 目录 前言 (一)直方图 (二)双直方图 目录 前言 今天我们学习的是直方图,导入的函数是: plt.hist(x=x, bins=10) 与plt.hist2D(x=x, y=y) (一)直方 ...

随机推荐

  1. WebSocket刨根问底(二)

    上篇文章[WebSocket刨根问底(一)]中我们对WebSocket的一些基本理论进行了介绍,但是并没有过多的涉及到一些实战的内容,今天我希望能够用几个简单的案例来向小伙伴们展示下WebSocket ...

  2. .NetCore&Linux&Docker&Portainer踩坑历险记

    最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...

  3. Paramiko模块简单使用

    介绍 Paramiko 一个第三方包,需要单独安装我们知道远程批量主机管理,比如ansible.Fabric,不需要安装客户端的远程执行命令等,这些都是基于Python原生的SSH,相当于模拟了一个S ...

  4. SQL修改表字段,加附属属性

    GO Go EXEC sys.[sp_addextendedproperty] @name = 'MS_Description',@value = '是否填写表单',@level0type = 'SC ...

  5. 【WCF系列】(一)为什么我们需要WCF

    为什么我们需要WCF 传统分布式软件的架构分析 一个开发需求:社保平台 访问量较大客户端类型/平台多和其他系统交互多快速开发/部署结构复杂(B/S.C/S.桌面.服务…) 传统的实现技术: 业界需要一 ...

  6. 简单的SQL注入

    Topic Link http://ctf5.shiyanbar.com/423/web/ 1)测试输入1的时候正常显示 2) 单引号测试输入1'发现存在漏洞(判断为字符型注入) 3) 联合注入测试( ...

  7. 离线批量数据通道Tunnel的最佳实践及常见问题

    基本介绍及应用场景 Tunnel是MaxCompute提供的离线批量数据通道服务,主要提供大批量离线数据上传和下载,仅提供每次批量大于等于64MB数据的场景,小批量流式数据场景请使用DataHub实时 ...

  8. 第16章 使用ASP.NET Core Identity - Identity Server 4 中文文档(v1.0.0)

    注意 对于任何先决条件(例如模板),首先要查看概述. IdentityServer旨在提供灵活性,其中一部分允许您为用户及其数据(包括账户密码)使用所需的任何数据库.如果您从新的用户数据库开始,那么A ...

  9. 为什么我的gridview.DataKeys.count总是为零?并提示索引超出范围

    第一个原因 你没有设置DataKeyNames属性, 第二个原因 你的DataSource是NUll值 第二个原因 DataKeyNames字段区分大小写

  10. [PHP]命令执行函数的区别

    <?php $cmd="ps aux|grep php-fpm"; $res=exec($cmd,$o); var_dump($o);//数组形式返回,每行一个元素 var_ ...