matplotlib plt.gca()学习

之前一直在这个代码里看到plt.gca()的使用,但是一直没搞明白这个怎么用,今天总结一下

gca是get current axis的首字母的缩写,就是控制坐标轴的,也是比较简单的,并不是一个很复杂的函数

复制代码

移动坐标轴

复制代码
import matplotlib.pyplot as plt

# 这里建立的画布大小是5*5的,并不是坐标轴范围,使用"十字按钮"拖动你就懂了!
plt.figure(figsize = (5,5))
plt.plot()  # 画个只有坐标系的图(因为没有传参数,所以显示空白)

ax = plt.gca()

# 获取你想要挪动的坐标轴,这里只有顶部、底部、左、右四个方向参数
ax.xaxis.set_ticks_position('bottom')  #  要挪动底部的X轴,所以先目光锁定底部!

# 在这里,position位置参数有三种,这里用到了"按Y轴刻度位置挪动"
# 'data'表示按数值挪动,其后数字代表挪动到Y轴的刻度值
ax.spines['bottom'].set_position(('data',0))
plt.show()

添加直线

复制代码
import matplotlib.pyplot as plt
N = 16
for i in range(N):
    plt.gca().add_line(plt.Line2D((0, i), (N - i, 0), color = 'm'))
plt.axis('tight')
plt.show()

添加形状

复制代码
import matplotlib.patches as patches
import matplotlib.pyplot as plt
# 圆形
shape = patches.Circle((0, 0), radius = 1., color = 'm')
plt.gca().add_patch(shape)
# 四边形
shape = patches.Rectangle((2.5, -.5), 2., 1., color = 'c')
plt.gca().add_patch(shape)
# 椭圆形
shape = patches.Ellipse((0, -2.), 2., 1., angle = 45., color = 'y')
plt.gca().add_patch(shape)
# 花状框
shape = patches.FancyBboxPatch((2.5, -2.5), 2., 1., boxstyle = 'sawtooth', color = 'b')
plt.gca().add_patch(shape)
# 显示
plt.grid(True, alpha=0.3)
plt.axis('scaled')
plt.show()

不规则图形

复制代码
import numpy as np
import matplotlib.patches as patches
import matplotlib.pyplot as plt
theta = np.linspace(0, 2 * np.pi, 8)
points = np.vstack((np.cos(theta), np.sin(theta))).transpose()
plt.gca().add_patch(plt.Circle((0, 0), radius = 1., color = 'm'))
plt.gca().add_patch(plt.Polygon(points, closed=None, fill=None, lw = 3., ls = 'dashed', edgecolor = 'c'))
plt.grid(True)
plt.axis('scaled')
plt.show()
相关推荐
无心水31 分钟前
22、数学与经济管理(运筹学) 核心考点与学习笔记
人工智能·笔记·学习·架构师·软考·软考架构师·软考系统架构师
小弥儿1 小时前
38K星的开源项目 t3code:给 Claude Code 和 Codex 装一个手机遥控器
学习·智能手机·开源·github
xxwl5852 小时前
Nginx 基础学习笔记
笔记·学习·nginx
Star(up up up)2 小时前
Docker系列---Dockerfile镜像文件
人工智能·经验分享·学习·程序人生·docker·容器·github
外收内放2 小时前
ENSP学习记录(4)
服务器·学习·智能路由器
承渊政道3 小时前
Linux网络学习【五种IO模型与⾮阻塞IO】
linux·网络·学习·ubuntu·io模型·非阻塞io
无心水4 小时前
20、大数据架构设计理论与实践 核心考点与学习笔记
大数据·笔记·学习·架构师·系统架构设计师·软考系统架构设计师·架构设计师
程序员梅雨4 小时前
【从零开始学习数据仓库 | 第三篇】: Flume——数据采集基石
java·大数据·数据仓库·后端·学习·flume
Z21-X4 小时前
云原生运维实战笔记:华为云计算与网络类服务全景解析
运维·笔记·学习·云原生·华为云
redtank20004 小时前
纯血鸿蒙学习效率三件套实测:背单词艾宾浩斯曲线、时间记录与睡眠辅助
学习·华为·harmonyos