4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置
目录
前言
本章节讲的是关于轴的设置,尽可能举例多种情况。
(一)设置轴的范围
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)语法说明
- 对于x轴:plt.xlim(start, end)
- 对于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)说明
- 需要导入:from matplotlib.ticker import MultipleLocator, FormatStrFormatter 模块
- 主刻度:(y轴同理)
- 倍数:ax.xaxis.set_major_locator(MultipleLocator(倍数))
- 文本格式:ax.xaxis.set_major_formatter(FormatStrFormatter('%占位数.小数点数f'))
- 副刻度:(将"major"改为"minor"即可)
- 倍数:ax.xaxis.set_minor_locator(MultipleLocator(倍数))
- 文本格式: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
大致步骤如下:
- 隐藏原有的边框坐标系
- 创建新的坐标系
- 添加箭头
注意:再创建新的坐标系时ax.new_floating_axis(0, 0)
- 第一个参数:0表示横线,1表示竖线
- 第二格参数:表示经过那个坐标点。
(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系列(十三)---轴的设置的更多相关文章
- 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示
目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...
- 4.4Python数据处理篇之Matplotlib系列(四)---plt.bar()与plt.barh条形图
目录 目录 前言 (一)竖值条形图 (二)水平条形图 1.使用bar()绘制: 2.使用barh()绘制: (三)复杂的条形图 1.并列条形图: 2.叠加条形图: 3.添加图例于数据标签的条形图: 目 ...
- 4.14Python数据处理篇之Matplotlib系列(十四)---动态图的绘制
目录 目录 前言 (一)需求分析 (二)随机数的动态图 1.思路分析: 2.源代码: 2.输出效果: 目录 前言 学习matplotlib已经到了尾声,没有必要再继续深究下去了,现今只是学了一些基础的 ...
- 4.12Python数据处理篇之Matplotlib系列(十二)---绘图风格的介绍
目录 目录 前言 (一)不同风格 1.说明: 2.使用: 3.代码使用: (二)例子演示 1.dark_background 2.bmh 3.fivethirtyeight 4.ggplot 5.gr ...
- 4.11Python数据处理篇之Matplotlib系列(十一)---图例,网格,背景的设置
目录 目录 前言 (一)图例legend 1.默认不带参数的图例 2.添加参数的图例 3.将图例移动到框外 (二)网格grid 1.说明 2.源代码: 3.输出效果 (三)背景axses 1.设置全局 ...
- 4.9Python数据处理篇之Matplotlib系列(九)---子图分布
目录 目录 前言 (一)subplot()方法 ==1.语法说明== ==2.源代码== ==3.输出效果== (二)subplot2grid方法 ==1.语法说明== ==2.源代码== ==3.展 ...
- 4.8Python数据处理篇之Matplotlib系列(八)---Figure的学习
目录 目录 前言 (一)figure()方法的定义 (二)figure()方法的参数 (三)figure()方法的例子 1.多窗体绘图: 2.窗口得分别率 目录 前言 今天我们来学习一下plt.fig ...
- 4.7Python数据处理篇之Matplotlib系列(七)---matplotlib原理分析
目录 目录 前言 (一)总框架分析 (二)函数式的绘图 1.说明: 2.函数绘图的缺优点 3.绘图类的函数 4.操作类的函数 5.例子: (三)面向对象式的绘图 1.基本概念 2.基本对象 3.面向对 ...
- 4.6Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist2d()直方图
目录 目录 前言 (一)直方图 (二)双直方图 目录 前言 今天我们学习的是直方图,导入的函数是: plt.hist(x=x, bins=10) 与plt.hist2D(x=x, y=y) (一)直方 ...
随机推荐
- MySQL将utf8字符集改为utf8mb4
前言 今天在查看tomcat日志时发现了一个错误:Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xF0 ...
- 【Spark篇】---Spark中Shuffle机制,SparkShuffle和SortShuffle
一.前述 Spark中Shuffle的机制可以分为HashShuffle,SortShuffle. SparkShuffle概念 reduceByKey会将上一个RDD中的每一个key对应的所有val ...
- tensorflow 1.0 学习:用别人训练好的模型来进行图像分类
谷歌在大型图像数据库ImageNet上训练好了一个Inception-v3模型,这个模型我们可以直接用来进来图像分类. 下载地址:https://storage.googleapis.com/down ...
- SQL注入: with rollup特性
题目名称:因缺思汀的绕过 题目地址:http://www.shiyanbar.com/ctf/1940 1.with rollup: with rollup关键字会在所有记录的最后加上一条记录,该记录 ...
- WebSocket(4)---实现定时推送比特币交易信息
实现定时推送比特币交易信息 实现功能:跟虚拟币交易所一样,时时更新当前比特币的价格,最高价,最低价,买一价等等...... 提示:(1)本篇博客是在上一遍基础上搭建,上一篇博客地址:[WebSocke ...
- Solaris 11 配置IP地址
查看ipipadm show-addr 删除IP地址ipadm delete-addr net0/v4 配置IP地址ipadm create-addr –T static –a local=10.90 ...
- 『素数 Prime判定和线性欧拉筛法 The sieve of Euler』
素数(Prime)及判定 定义 素数又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数,否则称为合数. 1既不是素数也不是合数. 判定 如何判定一个数是否是素数呢?显然,我 ...
- C++版 - Leetcode 400. Nth Digit解题报告
leetcode 400. Nth Digit 在线提交网址: https://leetcode.com/problems/nth-digit/ Total Accepted: 4356 Total ...
- Spring IOC核心源码学习
1. 初始化 大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到Bean Factory中: 在完成初始化的过程后,Bean们就在B ...
- Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
一.环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴.具体只讲述Jenkins配置以及整个流程的实现. 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_1 ...