『Python』matplotlib坐标轴应用
1. 设置坐标轴的位置和展示形式
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.use('Qt5Agg')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
plt.axes([0.05, 0.7, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")
plt.plot(np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="--")
plt.ylim(0, 1.5)
plt.axis("image")
plt.axes([0.3, 0.4, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")
plt.plot(2 + np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle="-")
plt.ylim(0, 15)
plt.axis([2.1, 3.9, 0.5, 1.9])
plt.axes([0.55, 0.1, 0.3, 0.3], frameon=True, facecolor="y", aspect="equal")
plt.plot(4 + np.arange(3), [0, 1, 0], color="blue", linewidth=2, linestyle=":")
plt.ylim(0, 1.5)
plt.axis("off")
plt.show()
函数
axes(rect, frameon=True, facecolor="y")
rect = [left, bottom, width, height]
left
和bottom
分别表示坐标轴的左侧边缘和底部边缘距离画布边缘的距离,width
和height
分别表示坐标轴的宽度和高度
left
和width
是画布宽度归一化后的距离,bottom
和height
是画布高度归一化后的距离。
frameon=True
是否显示四条轴脊
facecolor="y"
填充坐标轴背景的颜色函数
axis()
[xmin, xmax, ymin, ymax]
显示坐标轴的范围option
,可取值为
'on'
:打开坐标轴'off'
:关闭坐标轴显示'equal'
:设置相等的比例,y轴和x轴单位刻度对应长度是一样的'scaled'
:通过更改绘图框的尺寸设置相等的缩放比例'tight'
:设置足够大的限制来显示所有数据'auto'
:自动确定'image'
:‘scaled’ with axis limits equal to data limits'square'
:方形图,类似于‘scaled’
,但是强制xmax-xmin = ymax-ymin
2. 坐标轴刻度的显示
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
ax1 = plt.subplot(121)
ax1.set_xticks(range(0, 251, 50))
plt.grid(True, axis="x")
ax2 = plt.subplot(122)
ax2.set_xticks([])
plt.grid(True, axis="x")
plt.show()
如果不设置坐标轴刻度,则网格线也不会被设置。设置刻度还包括刻度标签,可以用函数
Axes.set_xticklabels()
和Axes.set_yticklabels()
设置对应刻度线的标签
3. 坐标轴的样式和位置的定制化展示
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.ticker import FormatStrFormatter
from calendar import day_name
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
fig = plt.figure()
ax = fig.add_axes([0.2, 0.2, 0.7, 0.7])
ax.spines["bottom"].set_position(("outward", 10))
ax.spines["left"].set_position(("outward", 10))
ax.spines["top"].set_color("none")
ax.spines["right"].set_color("none")
x = np.arange(1, 8, 1)
y = 2 * x + 1
ax.scatter(x, y, c="orange", s=50, edgecolors="orange")
for tickline in ax.xaxis.get_ticklines():
tickline.set_color("blue")
tickline.set_markersize(8)
tickline.set_markeredgewidth(5)
for ticklabel in ax.get_xmajorticklabels():
ticklabel.set_color("slateblue")
ticklabel.set_fontsize(12)
ticklabel.set_rotation(20)
ax.yaxis.set_major_formatter(FormatStrFormatter(f"$\yen%1.1f$"))
plt.xticks(x, day_name[0:7], rotation=20)
ax.yaxis.set_ticks_position("left")
ax.xaxis.set_ticks_position("bottom")
for tickline in ax.yaxis.get_ticklines():
tickline.set_color("lightgreen")
tickline.set_markersize(8)
tickline.set_markeredgewidth(5)
for ticklabel in ax.get_ymajorticklabels():
ticklabel.set_color("green")
ticklabel.set_fontsize(15)
ax.grid(ls=":", lw=1, color="gray", alpha=0.5)
plt.show()
4. 移动坐标轴的位置
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
x = np.linspace(-2 * np.pi, 2 * np.pi, 200)
y = np.sin(x)
y1 = np.cos(x)
ax = plt.subplot(111)
ax.plot(x, y, ls="-", lw=2, label=r"$\sin(x)$")
ax.plot(x, y1, ls="-", lw=2, label=r"$\cos(x)$")
ax.legend(loc="lower left")
plt.title(r"$\sin(x)$" + "和" + r"$\cos(x)$" + "函数")
ax.set_xlim(-2 * np.pi, 2 * np.pi)
plt.xticks([-2 * np.pi, -3 * np.pi / 2, -1 * np.pi, -1 * np.pi / 2,
0, np.pi / 2, np.pi, 3 * np.pi / 2, 2 * np.pi],
[r"$-2\pi$", r"$-3\pi/2$", r"$-\pi$", r"$-\pi/2$",
r"$0$", r"$\pi/2$", r"$\pi$", r"$3\pi/3$", r"$2\pi$"]
)
ax.spines["right"].set_color("none")
ax.spines["top"].set_color("none")
ax.spines["bottom"].set_position(("data", 0))
ax.spines["left"].set_position(("data", 0))
ax.xaxis.set_ticks_position("bottom")
ax.yaxis.set_ticks_position("left")
plt.show()
ax.spines[key]
会调用轴脊字典,如bottom
、top
、right
、left
键值是对应位置轴脊,ax.spines["bottom"].set_position(("data", 0))
表示将底轴移到数轴0坐标位置
『Python』matplotlib坐标轴应用的更多相关文章
- 『Python』matplotlib共享绘图区域坐标轴
1. 共享单一绘图区域的坐标轴 有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形.这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的. import n ...
- 『Python』matplotlib的imshow用法
热力图是一种数据的图形化表示,具体而言,就是将二维数组中的元素用颜色表示.热力图之所以非常有用,是因为它能够从整体视角上展示数据,更确切的说是数值型数据. 使用imshow()函数可以非常容易地制作热 ...
- 『Python』matplotlib初识
1. 核心原理 使用matplotlib绘图的原理,主要就是理解figure(画布).axes(坐标系).axis(坐标轴)三者之间的关系. 下面这幅图更详细: 以"美院学生张三写生画画&q ...
- 『Python』matplotlib实现GUI效果
1. 类RadioButtons的使用方法 类似单选框 import numpy as np import matplotlib.pyplot as plt import matplotlib as ...
- 『Python』matplotlib实现动画效果
一般而言,在绘制复杂动画时,主要借助模块animation来完成 import numpy as np import matplotlib.pyplot as plt import matplotli ...
- 『Python』matplotlib划分画布的主要函数
1. subplot() 绘制网格区域中几何形状相同的子区布局 函数签名有两种: subplot(numRows, numCols, plotNum) subplot(CRN) 都是整数,意思是将画布 ...
- 『Python』matplotlib常用图表
这里简要介绍几种统计图形的绘制方法,其他更多图形可以去matplotlib找examples魔改 1. 柱状图 柱状图主要是应用在定性数据的可视化场景中,或是离散数据类型的分布展示.例如,一个本科班级 ...
- 『Python』matplotlib常用函数
1. 绘制图表组成元素的主要函数 1.1 plot()--展现量的变化趋势 import numpy as np import matplotlib.pyplot as plt import matp ...
- 『Python』__getattr__()特殊方法
self的认识 & __getattr__()特殊方法 将字典调用方式改为通过属性查询的一个小class, class Dict(dict): def __init__(self, **kw) ...
随机推荐
- 接口测试--测试工具:rap2 接口文档解析
通过百度 OCR 工具识别 rap2 登录中的验证码,从而实现登录~那我们今天来实战解析 rap2 的接口数据,生成我们所需要的接口数据 实践上手 文档分析 1.我们先通过 F12 看看哪个接口是我们 ...
- wait notify的使用
1.wait().notify/notifyAll() 方法是Object的本地final方法,无法被重写. 2.wait()使当前线程阻塞,前提是 必须先获得锁,一般配合synchronized 关 ...
- docker开源系统监控软件Nagios
开源的系统监控软件 下面整理了3个: 1.Zabbix 2.Nagios 3.Open-Falcon 这位博主进行的完整的介绍: https://www.cnblogs.com/linuxandy/p ...
- ansible 常用模块总结
记录常用的模块功能,详细使用查看官网. 1. file模块 创建软连接 ansible test -m file -a "src=/tmp/conf.d dest=/tmp/conf.d s ...
- 骨架屏css样式
.chiaroscuro { background: #f2f2f2; animation-duration: 1.5s; animation-name: blink; animation-itera ...
- gdb调试用命令与一般调试方法
示例代码 1 #include <iostream> 2 using namespace std; 3 4 void Print() 5 { 6 cout<<"hel ...
- 【SOE】 ArcGIS Server对象扩展(SOE)开发注意事项
ArcGIS Server对象扩展(SOE)开发注意事项 1.SOE介绍 在ArcGIS 10.1中ArcGIS Server不在支持DCOM方式的连接,这也就意味着我们不能通过本地方式的连接使用A ...
- 关于Java集合框架的总结
Java集合框架(都实现了Cloneable和Serializable接口)支持以下两个类型的容器: 一种是为了存储一个元素集合,简称集合(collection). 另一种是为了存储键/值对,称为图( ...
- python操作图片
时间:2018-11-30 记录:byzqy 标题:python实现图片操作 地址:https://blog.csdn.net/baidu_34045013/article/details/79187 ...
- Ansible基础使用
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 Ansible命令用法 1.1 免密钥 1.2 Ad-Hoc基础命令 1.3 ...