matplotlab刻度线设置——如何在画布的上下左右四条边框上绘制刻度线
如何 设置 绘制 边框 画布 上下左右 刻度
2023-09-11 14:19:19 时间
我们平时使用matplotlib绘图时一般默认的刻度只在画布的右侧和下侧出现,但是在网上看到其他人的绘图往往都是上下左右四个边框线均有刻度,这是如何实现的呢,今天就给出一种设置画布上下左右四条边框刻度的方法。
一般默认的matplotlib绘图的刻度见下面链接:
python绘图库matplotlib:刻度线的方向调整, in, out, inout
-----------------------------------------------------------------------------
但是如何设置上下左右边框均有刻度呢?
1. 使用双y轴设置(共享x轴)或双x轴设置(共享y轴),可以保证3条边框有刻度但是不能保证4条边框有刻度,该种方法不是很好,这里只是给出实例代码但不推荐
代码:
import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内 plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots() ax2 = ax1.twinx() # 做镜像处理 ax1.plot(x, y, "b--") ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticklabels(["", "", "", "", "", "", "", "", "", "", "", ]) # ax2.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xlabel('X data', color="r") # 设置x轴标题 ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题 # ax2.set_ylabel('bad_rate', color='b') # 设置Y2轴标题 ax1.set_xlim(0, 1) ax1.set_ylim(0, 1) plt.grid(axis="both", ) plt.show()
绘图:
可以看到使用共享轴的方式可以实现三条边框上有刻度,但是如果使用绘制网格grid的时候只能实现绘制横线或竖线但是不能同时绘制横竖线。该种方法有些伪命题的意味,并不是很推荐,再则如果使用grid绘图的话也没有必要实现四条边框绘制刻度的需求了。
去掉gird函数后代码:
import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内 plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots() ax2 = ax1.twinx() # 做镜像处理 ax1.plot(x, y, "b--") ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax2.set_yticklabels(["", "", "", "", "", "", "", "", "", "", "", ]) # ax2.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xlabel('X data', color="r") # 设置x轴标题 ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题 # ax2.set_ylabel('bad_rate', color='b') # 设置Y2轴标题 ax1.set_xlim(0, 1) ax1.set_ylim(0, 1) # plt.grid(axis="both", ) plt.show()
绘图:
============================================
2. 通过设置 tick_params 实现边框刻度
代码:
import matplotlib.pyplot as plt plt.rcParams['xtick.direction'] = 'in' # 将x周的刻度线方向设置向内 plt.rcParams['ytick.direction'] = 'in' # 将y轴的刻度方向设置向内 x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] y = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] fig, ax1 = plt.subplots() ax1.plot(x, y, "b--") ax1.plot(x, y[::-1], "g-") ax1.set_xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_xticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.set_yticklabels([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) ax1.tick_params( # axis='y', # 只设置y轴刻度 direction='in', # 刻度线朝内 # length=6, width=3, # 长度和宽度 # colors='red', # 颜色 # labelsize=15, # 标签字体大小 top=True, right=True, # labeltop=True, # labelright=True ) """ ax1.tick_params(axis='x', # 只设置x轴刻度 direction='in', # 刻度线朝内 length=3, width=3, # 长度和宽度 colors='green', # 颜色 labelsize=15, # 标签字体大小 top=True, left=True, labeltop=True, labelright=True ) ax1.tick_params(axis='y', # 只设置y轴刻度 direction='in', # 刻度线朝内 length=6, width=3, # 长度和宽度 colors='red', # 颜色 labelsize=15, # 标签字体大小 top=True, right=True, labeltop=True, labelright=True ) """ ax1.set_xlabel('X data', color="r") # 设置x轴标题 ax1.set_ylabel('total_count', color='orange') # 设置Y1轴标题 ax1.set_xlim(0, 1) ax1.set_ylim(0, 1) # plt.grid(axis="both", ) plt.show()
绘图:
------------------------------------
核心实现代码:
ax1.tick_params( # axis='y', # 只设置y轴刻度 direction='in', # 刻度线朝内 # length=6, width=3, # 长度和宽度 # colors='red', # 颜色 # labelsize=15, # 标签字体大小 top=True, right=True, # labeltop=True, # labelright=True )
官方给出函数帮助文档:
===========================================
参考:
https://www.cnblogs.com/chenhuabin/p/12393720.html
相关文章
- linux环境中,如何通过手动创建crontab文件的方式来设置crontab定时调度任务?
- python如何给内存和cpu使用量设置限制
- c#如何设置成:【当前打开的项目是什么,就默认它为启动项目】,不然新添或打开别的项目都要设置一次启动 [原创]VS2012中将当前选定项目做为启动项
- 如何做好性能压测(一):压测环境的设计和搭建
- 如何学习Python爬虫[入门篇]?
- 在TEASOFT中如何设置出镜摄像头?
- Allegro如何快速清除多余的规则设置操作指导
- Allegro如何设置差分对内等长规则
- Allegro如何导出光绘和颜色设置到其它单板上操作指导
- 软件测试人员如何做好一份求职简历?
- 详解支付宝如何打造“未来医院”
- 如何在 Linux 环境下配置 Nagios Remote Plugin Executor (NRPE)
- spring boot 如何设置为不为web方式启动
- a-cascader如何设置默认值?ant级联选择器用法。
- 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
- echarts 与 百度地图bmap结合系列: 如何设置地图缩放级别和监听缩放事件
- 如何在运行的linux系统中获取设备树?
- 迁移学习如何设置不可训练层
- 如何设置body内容不能复制?
- SwiftUI Widget小组件之如何设置文本自适应视图大小(教程含源码)
- macOS Monterey 如何设置PPT演讲者模式实现电脑看备注投影看播放内容
- 为什么我们总是行动不起来?你失败不是因为能力差? 如何才能实现我们的计划?
- jQuery.ajax() 如何设置 Headers 中的 Accept 内容
- js如何禁止页面回退
- 解决Git问题:git登录账号密码错误remote: Incorrect username or password、如何快速关联/修改Git远程仓库地址、git修改用户名邮箱密码
- 如何实现一个c/s模式的flv视频点播系统
- Git 使用教程 之 如何使用Git上传项目代码到github
- Kaggle竞赛入门(二):如何验证机器学习模型
- MySQL服务器安装完之后如何调节性能
- 机械CAD中如何设置重叠图形消隐?
- 看网络电子围栏如何做好周界安防
- 【转】 Qt如何设置自动补全快捷键
- 念叨千百遍的大数据,到底如何真正驱动企业运营?